西西河

主题:【求助】向各位高手请教一个c语言中数组与指针的问题 -- 数值分析

共:💬84 🌺26 新:
全看分页树展 · 主题 跟帖
del
家园 指针里面放的就是地址

只不过它知道(或者说它认为自己知道)自己要指向的是个什么类型的玩意儿。(其实确切的说是编译器认为)

还是先确定下角色吧,这样好说。

路人甲:int a[3][4];

路人乙:int *p;

a知道每行的宽度,是因为您交待它了,它的“基类型”是一个有4个元素的int数组。也就是说这时它就认为自己指的东西有4*4byte那么长。所以您让他+1,他自己就找下一个了。也就是给自己所存的数(就是地址)加上了个16。所以您看到a+1就是a[1]也就是数组第二行的地址。

但是

p=(int *)a

的时候,您交待a了,这会儿你不能跟p说你是个数组指针,要这么说它就不跟你玩儿了。你就跟他说你是个int指针。反正都是地址,那家伙瞧不出来

于是,p就从了……

全看分页树展 · 主题 跟帖


有趣有益,互惠互利;开阔视野,博采众长。
虚拟的网络,真实的人。天南地北客,相逢皆朋友

Copyright © cchere 西西河