C語言的指標陣列的問題

時間 2022-11-19 09:45:36

1樓:匿名使用者

char *p1,*p2,*p3; 這是定義了三個指標變數,沒有被初始化。

char *p[3]=; 是定義了乙個包含三個指標(p[0],p[1],p[2])的陣列,同時你努力地用三個未初始化的變數把它初始化了。警告!但只是警告,所以你可以頭破血流地去使用它。

此時,你擁有包含陣列中的不務正業的三個野指標,總共六個指標了。p1,p2,p3和p[0],p[1],p[2]沒有任何關係,只是你想讓它們幹同樣的事。然而陣列中的指標沒有被正確初始化,並沒有指向三個字元陣列,而單獨的三個指標指向正確。

你可以改程式如下,

#include

void main()

;scanf("%s",p[0]);

printf("%s",p[0]);}

硬要使用p[0],你可以讓它上崗,在你程式的scanf 前給它賦值,p[0]=p1;什麼的,對它真正賦值,讓它有事幹。

當然在程式設計中,儘管不是致命錯誤,所有的警告我們都要嚴肅處理的嘛。

2樓:不掛

#include

int main()

;scanf("%s",p[0]);

printf("%s\n",p[0]);

return 0;

}it is ok!!!!!

你把 p1=a;p2=b; p3=c; 調到前面

3樓:匿名使用者

scanf("%s",p1)需要的是位址

陣列名p1代表的就是陣列的位址

若你要用p[0],可以用&p1[0]也行

4樓:匿名使用者

*p[3]代表3個字串,要加""引號

5樓:id雞蛋炒韭菜

咋不行了,什麼現象?

C語言中指標陣列的問題,c語言關於指標陣列的問題?

這樣看 0x00 0x78,0x99 0x78 h e l l 0 0 0x99 w o r l d 0 其中s就是0x00,然後,s 0 就是 0x00 0 0x00 取內容,得到的值是0x78,然後列印的就是hello s,就是相當於s 0 s 1,因為優先順序關係,先執行s 0 就是 0x78...

關於c語言陣列和指標的問題,關於C語言陣列和指標的乙個問題

c 語言裡 1 形式邏輯不成立。2 要分清 乙個形式 出現在 宣告裡,還是 出現在語句裡,3 另外,字元變數 與 普通變數 有些 不同。下面只談字元 宣告 char s 10 hello s 是 陣列,初始化 hello 0 自動加 0 宣告 char p p 是 指標。宣告 char p s p ...

C語言字元陣列的指標問題,C語言字串指標問題

這個就是看你對指標的理解了 char name 相當於你定義了乙個char 的指標陣列,每個陣列元素指向乙個字串。char name 表示你定義了乙個字元陣列,而你初始化的時候,確實字串,肯定編譯不過的。是不是二維陣列,就看你怎麼理解了,char name 中的name相當於char char na...

C語言中陣列和指標的問題

呵呵,你這個問題提重複了。我的回答也給你重複貼一遍。a a a 0 都是乙個值,指向首位址。p1是取指標p1的位址,不是p1內容的位址。p1 p2相等,但是 p1 不等於p2。p3 與 陣列a沒關係,但是因為a 4 正好索引到陣列a最後乙個成員的下乙個位址,因此正好是p1的位址。這段解釋比較麻煩,畫...

c語言二維陣列指標,C語言二維陣列指標

問題的關鍵是主函式中的指標p的值被修改了,因為 在f r 中,r p 在 f 函式中,s t 相當與 p t 而 t k 所以 p k.那麼主函式中,p k r k。 八千漢字 include int k 7 void f int s int main 三昧離火 b答案是正確的,因為二維陣列名相當於...