請教c語言問題。求詳解謝謝,請教C語言問題。求詳解 謝謝

2021-05-04 18:24:48 字數 832 閱讀 8690

1樓:匿名使用者

看來得從你的指標宣告開始給你講起了

樓主是否知道下面這2個宣告的區別?

char *p

char *p[2]

前者p是個指標,當你使用p[n]時,則是以p所指向的地址開始向後數n個地址中所存放的資料;

後者p是個陣列,陣列中的元素型別是指標,當你使用p[m]時,返回的只是這個陣列中第m-1個元素,它是一個指標,想實現類似前者的地址操作則需要再加一個,即p[m][n],這才是從指標p[m]開始向後數n個地址所存放的資料;

在第一個for迴圈時,你將

p[0]指向了ch[0]的首地址,即『6』

p[1]指向了ch[1]的首地址,即『8』

根據你的問題大概可以猜到,你將p[0][1]與p[1](等同於p[1][0])的意義弄混了,前者為『9』,而後者為『8』

2樓:

宣告的*p[2]是有兩個元素的陣列,每個元素都是char型指標。而p[0]=ch[0],p[1]=ch[1]。ch[0]和ch[1]是什麼呢?

由char ch[2][5]=可知,它們分別是指向字串"6937"和"8254"指標;所謂指向字串的指標,就是其「值」是字串第一個字元的地址。ch[0]指向字串"6937"就是其中放的是第一個字元'6'的地址,自然ch[1]中就是第二個字串"8254"的第一個字元'8'的地址了……

3樓:匿名使用者

因為你把p[1]的地址指向了ch[1],即"8254"的首地址

4樓:小樹枝

p[1]應該是8254,它是等於ch[1]的,

p[0][1]才是9

請教c語言問題,請教C語言問題

單步執行 gdb l 1 1 include 2 main 3 gdb 11 12 gdb line number 13 out of range 1.c has 12 lines.gdb b 3 breakpoint 1 at 0x80483f4 file 1.c,line 3.gdb run s...

請教一下c語言的連結串列問題,請教關於C語言 單連結串列的問題

建立一個連結串列有兩種方式,第一種,尾插入法,因為是按順序插入,遍歷連結串列他是順序的 第二種,頭插入法 這種插入可以將資料逆序儲存,其實,遍歷連結串列的時候他是逆序的 根據 這個應該是建立連結串列的頭插入法 p next head next head是頭結點,head next是指向下一個結點,當...

求詳解c語言題目,求詳解c語言題目

7.簡單,c 8。題目不全 9.b,sizeof不是一個函式,是一個關鍵字。在編譯器會為常量 10.c 2b即2 16 0 65535 11,d,double型別。c語言有隱式型別提升char short int float double,對於型別有疑惑的問題,最簡單的驗證方法是寫一段 用sizeo...