博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
array
阅读量:2155 次
发布时间:2019-05-01

本文共 1892 字,大约阅读时间需要 6 分钟。

demo1

打印内存地址

int array[10] = {1,2,3};//for (int i = 0; i < array.length; i++) {for (int i = 0; i < sizeof(array) / sizeof(array[0]); i++) {	cout << "array[" << i << "].address=" << &array[i] << endl;}

array[0].address=00CFF7F0

array[1].address=00CFF7F4
array[2].address=00CFF7F8
array[3].address=00CFF7FC
array[4].address=00CFF800
array[5].address=00CFF804
array[6].address=00CFF808
array[7].address=00CFF80C
array[8].address=00CFF810
array[9].address=00CFF814

从上面可以看出每个int占用4个字节

 

 

demo2

int array1[] {1,3,5,7,9,11};        int* p1 = array1;    int i = 0;    cout<< "p1["<<<"]=" << *p1 << ",address["<<<"]=" << p1<< endl;    i=i+1;    p1 = p1+1;    cout<< "p1["<<<"]=" << *p1 << ",address["<<<"]=" << p1<< endl;    i=i+1;    p1 = p1+1;    cout<< "p1["<<<"]=" << *p1 << ",address["<<<"]=" << p1<< endl; i=i+1; p1 = p1+1; cout<< "p1["<<<"]=" << *p1 << ",address["<<<"]=" << p1<< endl; i=i+1; p1 = p1+1; cout<< "p1["<<<"]=" << *p1 << ",address["<<<"]=" << p1<< endl; i=i-1; p1 = p1-1; cout<< "p1["<<<"]=" << *p1 << ",address["<<<"]=" << p1<< endl;

p1[0]=1,address[0]=0x7ffeefbff4b0

p1[1]=3,address[1]=0x7ffeefbff4b4

p1[2]=5,address[2]=0x7ffeefbff4b8

p1[3]=7,address[3]=0x7ffeefbff4bc

p1[4]=9,address[4]=0x7ffeefbff4c0

p1[3]=7,address[3]=0x7ffeefbff4bc

 

数组名称

多数情况下,c++将数组名解释为数组的第1个元素的地址。

// c++11int array1[] {1,3,5,7,9,11};    cout << "array1[0].addess=" << array1 << endl;cout << "array1[0].addess=" << &array1[0] << endl;# 最初的时候,下面的地址是一样的array1 == &array1[0]

array1[0].addess=0x7ffeefbff4b0

array1[0].addess=0x7ffeefbff4b0

 

总结

p1和*p1,前者是地址,后者是存储在该地址的值。由于p1指向第1个元素,因此*p1显示的值为第1个元素的值,即1.

接下来将p1加1.这样p1的值为第2个元素的地址。因此,*p1现在的值是3.

以此类推。

 

C99

int array1[6] = {[3]=10};printf("=======================================\n");for(int i=0;i< sizeof(array1)/sizeof(array1[0]);i++) {     printf("array1[%d]=%d \n",i,array1[i]);}

输出

array1[0]=0

array1[1]=0
array1[2]=0
array1[3]=10   // notice
array1[4]=0
array1[5]=0

 

转载地址:http://yexwb.baihongyu.com/

你可能感兴趣的文章
【虫师】【selenium】参数化
查看>>
【Python练习】文件引用用户名密码登录系统
查看>>
学习网站汇总
查看>>
【Python】用Python打开csv和xml文件
查看>>
【Loadrunner】性能测试报告实战
查看>>
【自动化测试】自动化测试需要了解的的一些事情。
查看>>
【selenium】selenium ide的安装过程
查看>>
【手机自动化测试】monkey测试
查看>>
【英语】软件开发常用英语词汇
查看>>
Fiddler 抓包工具总结
查看>>
【雅思】雅思需要购买和准备的学习资料
查看>>
【雅思】雅思写作作业(1)
查看>>
【雅思】【大作文】【审题作业】关于同不同意的审题作业(重点)
查看>>
【Loadrunner】通过loadrunner录制时候有事件但是白页无法出来登录页怎么办?
查看>>
【English】【托业】【四六级】写译高频词汇
查看>>
【托业】【新东方全真模拟】01~02-----P5~6
查看>>
【托业】【新东方全真模拟】03~04-----P5~6
查看>>
【托业】【新东方托业全真模拟】TEST05~06-----P5~6
查看>>
【托业】【新东方托业全真模拟】TEST09~10-----P5~6
查看>>
【托业】【新东方托业全真模拟】TEST07~08-----P5~6
查看>>