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 二維陣列相當於乙個一維陣列裡面的元素都是一維陣列 二維陣列名也相當於乙個二級指標。一維陣列 a a 0 二維陣列 a a 0 a 0 0 通俗點寫就是a a 0 a 0 a 0 0 因為 a 0 a 0 0 所以a於 a指向同乙個位址 a 0 0 則 a a 0 0 include int main... 常玉標 cannot convert from const int to double 編譯器 會出現這樣的錯誤.應為不能把const int 賦值給 double 型別的變數.希望你能懂 首先我鄙視下樓上的回答,答非所問。你這肯定錯誤的啊,首先 double p 是定義了一個指標變數p,p只能存放... 星月小木木 c語言中指標即位址,位址的傳值可以引起引數的變化。比如 x,y是取這兩個變數的位址,作用空間在main函式裡。然後函式呼叫把這兩個變數的位址傳遞到函式myadd中,在函式中的 a和 b分別是引用位址指向的變數值,等於是取到了x,y本身的值。在myadd中直接操作 a可以改變x的值。通俗來...關於c語言指標的問題,乙個關於c語言指標的問題
問關於c語言指標的問題,問一個關於C語言指標的問題
c語言的傳值與傳指標的問題,大一c語言題目,形參實參與指標的問題