demo1
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
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
数组名称
多数情况下,c++将数组名解释为数组的第1个元素的地址。
array1[0].addess=0x7ffeefbff4b0
总结
p1和*p1,前者是地址,后者是存储在该地址的值。由于p1指向第1个元素,因此*p1显示的值为第1个元素的值,即1.
接下来将p1加1.这样p1的值为第2个元素的地址。因此,*p1现在的值是3.
以此类推。
C99
array1[0]=0 array1[1]=0 array1[2]=0 array1[3]=10 // notice array1[4]=0 array1[5]=0