*(a+1)+1我记得老师说过带*的都表示该地址的数值,但是怎么这个是显示地址呢?

如题,请高手指示~亿分感谢....
这里的a应该是二维数组的指针类型呢~对不?我不明白的是为什么有这个指针符号了,他却显示地址,而不是显示数值呢?

因为你是二维数组,*(a+1)+1是指较高维的值,而较高位的值就是低维的地址,比如a[5][5],*a的值是a[0],*(a+1)的值是a[1]……他们存储的是第二微值的地址.
*(a+i)+j表示第i行第j列的地址,*(a+1)+1的值就是第一行第一列的那个值的存储地址,所以第i行第j列的值就是*(*(a+i)+j).
我觉得我说的还算是清楚了吧。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2008-06-18
*(a+1)地址的数值
*(a+1)+1是二维数组的地址
*(*(a+1)+1)二维数组的数值
*a地址的数值
首先你要知道指向的是二维数组和一维数组~就是这么简单
第2个回答  2008-06-18
你说说a是什么类型吧?
大概猜测有可能你溢出了数组的或者指针的边界,比如int a[4],你却取了个a[5]的值,就会出现你说的地址,而不是数组的值。
相似回答