VC驿站

 找回密码
 加入驿站

QQ登录

只需一步,快速开始

搜索
查看: 1081|回复: 3

[已解决]C++ 数组输出问题

[复制链接]
93_avatar_middle
最佳答案
0 
在线会员 发表于 2021-4-6 21:14:08 | 显示全部楼层 |阅读模式
本帖最后由 Debug 于 2021-4-7 00:52 编辑

int num[10]={5,8,9,10,2,1,4,7,6,3};//数组初始化,
cout<<num<<endl;
这个数组这样输出怎么都不是原来数字呢。
最佳答案
37_avatar_small
2021-4-8 16:06:09
你输出的是数组的变量地址来的
要输出数组成员
        int num[10]={5,8,9,10,2,1,4,7,6,3};//数组初始化,
        for (int i=0;i<10;i++)
        {
                cout<<num[i]<<endl;
        }




上一篇:myints + sizeof(myints) / sizeof(int)
下一篇:关于创建指针对象的问题
37_avatar_middle
最佳答案
1 
在线会员 发表于 2021-4-8 16:06:09 | 显示全部楼层    本楼为最佳答案   
bestAnswer
你输出的是数组的变量地址来的
要输出数组成员
        int num[10]={5,8,9,10,2,1,4,7,6,3};//数组初始化,
        for (int i=0;i<10;i++)
        {
                cout<<num[i]<<endl;
        }
13_avatar_middle
最佳答案
1 
在线会员 发表于 2021-4-7 00:13:22 | 显示全部楼层
本帖最后由 小白学编程 于 2021-4-7 00:23 编辑

我这个小白解答吧  大佬们不懈解决这种问题
https://www.cctry.com/thread-300885-1-1.html
一维数组定义的三种方式:

1. ` 数据类型  数组名[ 数组长度 ]; `
2. `数据类型  数组名[ 数组长度 ] = { 值1,值2 ...};`
3. `数据类型  数组名[ ] = { 值1,值2 ...};`


int main()
{
        int num[10] = { 5,8,9,10,2,1,4,7,6,3 };//数组初始化,
        for (int i=0;i<10;i++)
        {
                cout << num <<" ";
        }
        cout << endl;
        system("pause");
        return 0;
}

cout << num<<endl;指向的是十六进制的内存空间   
cout <<(int) num<<endl; 指向的是十进制内存空间

int main() {

        //定义方式1
        //数据类型 数组名[元素个数];
        int score[10];

        //利用下标赋值
        score[0] = 100;
        score[1] = 99;
        score[2] = 85;

        //利用下标输出
        cout << score[0] << endl;
        cout << score[1] << endl;
        cout << score[2] << endl;


        //第二种定义方式
        //数据类型 数组名[元素个数] =  {值1,值2 ,值3 ...};
        //如果{}内不足10个数据,剩余数据用0补全
        int score2[10] = { 100, 90,80,70,60,50,40,30,20,10 };
       
        //逐个输出
        //cout << score2[0] << endl;
        //cout << score2[1] << endl;

        //一个一个输出太麻烦,因此可以利用循环进行输出
        for (int i = 0; i < 10; i++)
        {
                cout << score2 << endl;
        }

        //定义方式3
        //数据类型 数组名[] =  {值1,值2 ,值3 ...};
        int score3[] = { 100,90,80,70,60,50,40,30,20,10 };

        for (int i = 0; i < 10; i++)
        {
                cout << score3 << endl;
        }

        system("pause");

        return 0;
}

> 总结1:数组名的命名规范与变量名命名规范一致,不要和变量重名

> 总结2:数组中下标是从0开始索引
1. 可以统计整个数组在内存中的长度
2. 可以获取数组在内存中的首地址

//数组名用途
        //1、可以获取整个数组占用内存空间大小
        int arr[10] = { 1,2,3,4,5,6,7,8,9,10 };

        cout << "整个数组所占内存空间为: " << sizeof(arr) << endl;
        cout << "每个元素所占内存空间为: " << sizeof(arr[0]) << endl;
        cout << "数组的元素个数为: " << sizeof(arr) / sizeof(arr[0]) << endl;

        //2、可以通过数组名获取到数组首地址
        cout << "数组首地址为: " << (int)arr << endl;
        cout << "数组中第一个元素地址为: " << (int)&arr[0] << endl;
        cout << "数组中第二个元素地址为: " << (int)&arr[1] << endl;

        //arr = 100; 错误,数组名是常量,因此不可以赋值


二维数组定义的四种方式:

1. ` 数据类型  数组名[ 行数 ][ 列数 ]; `
2. `数据类型  数组名[ 行数 ][ 列数 ] = { {数据1,数据2 } ,{数据3,数据4 } };`
3. `数据类型  数组名[ 行数 ][ 列数 ] = { 数据1,数据2,数据3,数据4};`
4. ` 数据类型  数组名[  ][ 列数 ] = { 数据1,数据2,数据3,数据4};`



> 建议:以上4种定义方式,利用==第二种更加直观,提高代码的可读性==

示例:

```C++
int main() {

        //方式1  
        //数组类型 数组名 [行数][列数]
        int arr[2][3];
        arr[0][0] = 1;
        arr[0][1] = 2;
        arr[0][2] = 3;
        arr[1][0] = 4;
        arr[1][1] = 5;
        arr[1][2] = 6;

        for (int i = 0; i < 2; i++)
        {
                for (int j = 0; j < 3; j++)
                {
                        cout << arr[j] << " ";
                }
                cout << endl;
        }

        //方式2
        //数据类型 数组名[行数][列数] = { {数据1,数据2 } ,{数据3,数据4 } };
        int arr2[2][3] =
        {
                {1,2,3},
                {4,5,6}
        };

        //方式3
        //数据类型 数组名[行数][列数] = { 数据1,数据2 ,数据3,数据4  };
        int arr3[2][3] = { 1,2,3,4,5,6 };

        //方式4
        //数据类型 数组名[][列数] = { 数据1,数据2 ,数据3,数据4  };
        int arr4[][3] = { 1,2,3,4,5,6 };
26_avatar_middle
最佳答案
0 
在线会员 发表于 2021-4-21 21:22:32 | 显示全部楼层
这是基础问题呢
您需要登录后才可以回帖 登录 | 加入驿站 qq_login

本版积分规则

×【发帖 友情提示】
1、请回复有意义的内容,请勿恶意灌水;
2、纯数字、字母、表情等无意义的内容系统将自动删除;
3、若正常回复后帖子被自动删除,为系统误删的情况,请重新回复其他正常内容或等待管理员审核通过后会自动发布;
4、感谢您对VC驿站一如既往的支持,谢谢合作!

关闭

站长提醒上一条 /2 下一条

QQ|小黑屋|手机版|VC驿站 ( 辽ICP备09019393号-4 )|网站地图wx_jqr

GMT+8, 2023-12-8 17:33

Powered by CcTry.CoM

© 2009-2021 cctry.com

快速回复 返回顶部 返回列表