1樓:匿名使用者
for(p+m-1;p
其中的p+m-1並不改變p的值,所以p仍然指向a[0],因此,多加了a[0]和a[1] 2樓:匿名使用者 其中的p+m-1並不改變p的值,所以p仍然指向a[0],因此,多加了a[0]和a[1] 如果按我說的是"p=a+m-1",那麼p=a+3-1=a+2,也就是說p從a[2]開始加,a[2]是3,從3開始加,3+4+5=12; 樓上兩位正解 3樓:匿名使用者 void main() ,m,n,sum; int *p; scanf("%d%d",&m,&n); p=a; sum=0; for(p+m-1;p
sum=sum+*p; printf("%d",sum); getch();} 關於c語言指標的一個問題如圖,求解釋~ 4樓:dear_佩佩 //這樣 bai理解不 int sss(char *s, char *t)//終止時(1) s 指向結尾, t 沒有到結尾, 返回 (*s - *t) 為正數 //終止時(2) s 指向結尾, t 指向結尾, 返回 (*s - *t) 為 0 //終止時(3) s 沒有到結尾, t 指向結尾, 返回 (*s - *t) 為負數 return (*s - *t);} 5樓:document樂園 因為有一個等於的符號 所以是比較大小 關於c語言的指標問題(指標的地址+1問題)
10 6樓:小p精神 我來給你寫個例子,你參考一下 int *p, *q,*s; int a[3] = ; p = a; //將a的首地址賦值給p 那麼p指向的值應該是a[0]的值2 printf("a[0] = %d; *p = %d \n", a[0], *p); q = &a[0] + 1; //將a[0]的地址向右偏移一位就等於a[1]的地址 a[1] = 8那麼*q應該等於8 s = q + 1; //將q指標向右偏移一位,相當於把a[1]的地址向右偏移一位,即a[2]的地址指向的值是25 //列印驗證一下 printf("a[0] = %d; *q = %d ;a[1] = %d *s = %d\n", a[0], *q,a[1],*s); 7樓: 輸出的四行**分別是: a的值, a的地址+1的地址值(並非a的地址,因為你的p值已經+1了),*p表示的是p指向地址的內容值; *q表示a的地址+17地址上內容的值. a的地址+1的值,是指向下一個地址,偏移量為a的型別長度 c語言的一個指標問題。。 8樓: 指標做加法和減法是按其指向的型別來的,char*加1是往後移動一個char那麼長的位置,long*加1是往後一定一個整型那麼長的位置,這裡4個char才有一個long那麼長(具體你可以用sizeof輸出看),所以q是long*,q++往後移動了4個char,應該指向e的位置 9樓:匿名使用者 q經過q=(long*)p強制型別轉換後,q指向p所指向的記憶體塊中的a,因為q是long 型4位指標,只能看到abcd四位,所以q++;後q指向了e,並且看到efgh四位,再經過強制型別轉換,r也指向e,所以結果就是efgh 劉文正粉絲 首先說一下,你這不是c語言,是c 問題一 這個就是問題二的內容了.p指向的是a,而p是一個地址.c語言輸出一個字串不是靠一個實際的資料輸出的,而是靠著實際資料的首地址輸出的.問題二 char ch aadsf 你要知道,一個字串的值是這個臨時值的首地址,也就是a的地址.而你又把這個地址給... 指標做加法和減法是按其指向的型別來的,char 加1是往後移動一個char那麼長的位置,long 加1是往後一定一個整型那麼長的位置,這裡4個char才有一個long那麼長 具體你可以用sizeof輸出看 所以q是long q 往後移動了4個char,應該指向e的位置 q經過q long p強制型別... 飛翔的蠍子大叔 關於int p1 123這個問題我看了很多資料,在這裡我發表一點看法,該問題非常好,這是c語言需要規範的地方。int p1 123 是非法操作,指標表示地址,地址 123?我是沒有見過這種操作。地址一般用二進位制 八進位制 十六進位制表示,123表示地址根本就是扯淡!這個語句的目的就...c語言指標的問題,一個c語言指標的問題
C語言的指標問題,C語言的一個指標問題。。
關於C語言指標問題,C語言指標的賦值問題