經典的c語言指標問題題目,一個經典的c語言指標問題題目

時間 2021-08-30 09:12:50

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語言指標的問題

二維陣列相當於乙個一維陣列裡面的元素都是一維陣列 二維陣列名也相當於乙個二級指標。一維陣列 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...

問關於c語言指標的問題,問一個關於C語言指標的問題

常玉標 cannot convert from const int to double 編譯器 會出現這樣的錯誤.應為不能把const int 賦值給 double 型別的變數.希望你能懂 首先我鄙視下樓上的回答,答非所問。你這肯定錯誤的啊,首先 double p 是定義了一個指標變數p,p只能存放...

c語言的傳值與傳指標的問題,大一c語言題目,形參實參與指標的問題

星月小木木 c語言中指標即位址,位址的傳值可以引起引數的變化。比如 x,y是取這兩個變數的位址,作用空間在main函式裡。然後函式呼叫把這兩個變數的位址傳遞到函式myadd中,在函式中的 a和 b分別是引用位址指向的變數值,等於是取到了x,y本身的值。在myadd中直接操作 a可以改變x的值。通俗來...