关于C数组的存储地址?

来源:百度知道 编辑:UC知道 时间:2024/06/22 01:02:22
float a[3][4]; /***不管是啥数据类型****/
if(&a[1][2]==a+6) /****这里都是加6*****/
printf("%x\n",&a[1][2]);
这里为什么&a[1][2]==a+24 判断不能通过
&a[i][j]=a+i*sizeof(a[0])+j*sizeof(a[0])=a+1*16+2*4=a+24
问题补充:希望高手能给出:数组在计算机中的存储表示方法!3Q
本人发现Turbo C 2.01在计算机的实际存储与理论上的存储地址不符合,故发此问题,求高手解答!

&a[0][0]=a
&a[0][1]=a+1
&a[0][2]=a+2
&a[0][3]=a+3
&a[1][0]=a+4
&a[1][1]=a+5
&a[1][2]=a+6
对数组
和long a[7],char a[7];类似与数据类型无关,系统自动识别

&a[1][2]==a+24
改成
&a[1][2]==a[0]+24

你问的问题太多了,一个一个问好不好