1樓:
3全部那是因為你 a陣列內容設得比較巧合
**p外層迴圈分別對應a[0][0],a[1][0],a[2][0]也就是0,4,7
而內層迴圈:
for(j=0;j<4;j++)
printf("%-6d",**p+j);
我就就以a[0][0]為例
輸出第一個:a[0][0]+j(j==0)==a[0][0]==0第二個:a[0][0]+j(j==1)==1剛好值==a[0][1],值剛好對應上了,所以你覺得是一樣
所以,只要你的a陣列的值,每一行的值不是依次遞增,結果肯定不是一樣的:
#include "stdio.h"
void main(void)
,,};//,,};
int i, j;
int (*p)[4];
//輸出部分
for (p=a;p < a+3; p++)printf("\n");
}//輸出部分
for (p=a;p < a+3; p++)printf("\n");
}你可以看到,結果不一樣了吧
2樓:不掛
不對吧。。。。此結果非彼結果。。。 *(*p+j)是通過讀地址所存的值,而**p+j是通過計算和所得,恰巧相同。。。不信你打亂你的二維陣列的元素。。。就知道了。。。。。
C語言指標問題,C語言指標問題
include int main void max min sz 0 for i 1 ip i printf max d position d n max,j 1 printf min d position d n min,k 1 return 0 c語言指標問題 10 最好貼上完整程bai序 或標...
C語言的問題,指標陣列,c語言指標陣列
改變不了,字串常量是改不了的,你可以試試char p aaaaa p 1 b 這樣是改不了的 只能定義二維陣列才可以改 char p 3 100 這樣才可以改,不要問為什麼,字串常量就是不能改 直接讓指標指向另一個字串即可 p 0 aaaa 這樣定義指標指向的字串是無法修改的。c語言指標陣列 p是i...
一道c語言指標問題,一道C語言的指標問題
int a 10 是指標陣列,每個a i 都是指向 int型的指標 比如 int abc a 0 abc int a 10 是陣列指標,a 是指向一個有10個元素的int型陣列 比如int abc 10 a abc int a 10 a是陣列,a裡存放的是10個int型指標 int a 10 a是指...