主题:【求助】向各位高手请教一个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就从了……
- 相关回复 上下关系8
🙂del 熊熊熊熊 字0 2009-02-20 22:46:59
🙂可以试试强制类型转换 七月半 字145 2009-02-21 05:37:07
🙂int **x是用来实现指针数组这类功能的 1 autoeagle 字96 2009-02-20 16:32:40
🙂花一个。我觉得LZ的困惑可能来自 3 frnkl 字739 2009-02-20 18:35:40
😜“指针数组”vs“数组指针” 七月半 字64 2009-02-21 05:45:35