1樓:新新
(1)c[3]超過陣列範圍了,陣列下標從0開始,c[0] c[1] c[2]
(2)pc+3 也超過範圍了啊
(3)c++ 指向c[1]這個值 應該是這個正確吧(4)c已經是陣列第一個元素的地址了,&c再取地址又亂套了*pc=c當然不可以寫成pc=c了,那樣意義全變了。
可以拆成兩句:
char c[3];
char *pc=c; 定義了一個char型的指標。
2樓:匿名使用者
char c[3],*pc=c 因為用的是逗號 所以要有*pc=c如果改成分號,相當於char c[3]; char *pc;pc=c這樣才行
char *pc;pc=c;相當於 char *pc=c;
如果你用的是譚浩強的c語言第四版 翻書到231頁中間有以上的說明關於a的答案。。。char c[3]意思是有3個元素啊。。。也就 c[0] c[1] c[2]..
哪來的c[3]嘛 哈哈
3樓:牛孝祖
沒有c[3].c[0]開始共三個所以到c[2] 。char *pc=c 是把型別為char的c的地址放到pc中。
char pc=c,pc就成了一個型別為char的變數而後面的c也不再是個地址而是一個沒有加『』的字元,如果非要把c當個地址來賦給pc的話 pc應該是個char陣列,因為char只能是一個字元。
4樓:匿名使用者
只有c[0]、c[1]、c[2] 沒有c[3]的 *pc=c不可以寫成pc=c 兩個的型別是不同的
c語言空指標野指標通用指標,C語言 空指標
野指標就是不知道指向 或者說不知道指向的記憶體是否可以使用,一般都是剛剛宣告但沒有初始化的指標。空指標不是指向常數0,只指向地址0,即null,其實換句話說,指標的本質就是地址嘛,空指標就是指標本身的值 地址 為0 空指標的作用是防止野指標的出現,因為我們不能知道野指標到底指向 所以我們也無法判斷一...
c語言行指標和列指標,C語言行指標和列指標
在任何時候 抄都不能定址,它是用bai來取地址的.p i 在任du何時候zhi 都等價dao於 p i p i j 其中p是int x 型別的 在任何時候都等價於 i x j x是一個變數.int a 10 20 這裡x 20 int a 20 10 這裡x 10 c語言沒有什麼行指標,列指標.一維...
C語言指標
正如您所說 a是一個常量,常量是不能修改的變數。不可以修改,不代表不可以引用呀,a i 只是借用a的值 陣列的首地址 來訪問其他成員,實際上並沒有改變a的值。但是換成a 執行之後a的值就改變了,被修改了,編譯當然通不過啦。這道題中的a是陣列的首地址,要是改變a的值,那陣列不是也改變了嗎?所以,一定是...