1樓:匿名使用者
首先懷疑你的程式有筆誤,估計你把point( p ) 寫成了 point()了
這樣的話,你的題目就變成這樣了.
point(char *p)
main()
這個函式,其中(char *p)的p為形參(就是形式的引數)。可以把這個函式改為point(char *tmp_p)結果是一樣的,但是更容易理解了。
在main函式中,p=b。而b是乙個陣列名,b也是改為point(char *tmp_p)了。
其實呼叫point(tmp_p);的過程是這樣的:
tmp_p = p;
tmp= tmp+3;
這樣可以看出變化的是tmp, p沒有任何變化。所以p這個位址沒有變,所以p這個位址(也就是說陣列b的首位址)裡放的還是『a』。
另外,tmp_p這個變數的生存週期就是point( p )函式的執行週期。關鍵要明白main函式中的p和point(char *p)中的p不是乙個指標(變數),是兩個指標(變數)。在呼叫point( p )函式的時候把main中的p賦值給了point(char *p)中的p。
2樓:匿名使用者
point(char *p)
為p指標向下順移定址三位
char b[4]={『a',『b',『c',『d』},*p=b;
此時(*p)的指標值為b[0]指向b陣列頭位置,即當前記憶體狀態(*p)='a',p=b;
point();應該把引數加進去,應該是pint(p);得到結果是p+=3,即&b[0+3]=&b[3];所以當前(*p)=b[3]='d'
所以最終執行結果*p為 'd'
3樓:匿名使用者
point();!!!
確定這條語句對嗎!!!???應該編譯不過吧
c語言關於指標的一道選擇題
4樓:
d .第一次列印*(p++),先取值後++,也就是列印完p的位址才偏移的。k=&p,那麼**k就等價於*p,所以列印的是第二個陣列的值
c語言關於指標的一道題。
5樓:匿名使用者
sum=sum+(*p); 二維陣列的指標不是怎麼用的吧···直接加個一就相當於指向了第二行的首位址了···
6樓:匿名使用者
printf("%5.2f",*((*(p+n-1))+i));
一道C語言中的指標問題,一道C語言的指標問題
include void main 第乙個空填char str1,str2 後面如樓上所說。p1 p1 p2 一道c語言的指標問題 a char s 5 abcde bai 字串這樣賦值時,末尾有乙個du預設的zhi串尾符 0,所以字串 abcde 的實際長度是dao 回6,s 5 是儲存不下的,溢...
一道c語言讀程式題,一道C語言讀程式題
你除錯下。第二個for只列印出5 3個 第三個for 不關他的事。只迴圈了二次 第三個for 列印出當i 1 時 列印乙個 第二個for打的4個 換行 當i 2時 j 3 列印出三個 第二個 for 列印的3個 換行當i 3時 j 5 列印出五個 第二個for 列印的2個 換行所以結果是那樣了.應該...
c語言程式設計,一道題不會,求大神,一道C語言程式題,求大神幫忙!!!
include stdio.h include math.h main else else if a b a c else 知道三邊計算三角形面積可以使用海 式 海 式 s p p a p b p c p為周長的一半 p a b c 2 c語言中計算根號使用標頭檔案 include math.h 因...