關於字串陣列,指標定義陣列

2021-06-25 14:24:13 字數 558 閱讀 4466

今天測了乙個程式,發現了一些不懂的問題,下面貼上**和自己的一些想法。

1.用指標指向乙個字串,並嘗試修改字串。

char  *p = "hello";

p[2] = 'c';

printf("the word is :%s\n",p);

編譯沒有問題,但是執行沒有任何的輸出。

我們都知道p指向「hello」的首字母『h』的位址,但printf("the word is :%s\n",p);可以輸出hello .但是修改其中乙個字母導致無法輸出這個字串。

當改變其中乙個字元被修改後,導致記憶體中無法對p進行重新賦值,導致無法輸出字串;

2.對上面的程式進行修改

char c[ ] = 「hello」;

char *p =c;

p[2] = 'c';

printf("the word is: %s\n",p);

編譯沒問題,執行輸出heclo,執行成功;

p只是逐個指向c,c[1]...c[4].所以定義p[2]為c時,p指向c[2]時並未提取l,而是將重新賦值指向c[3],然後繼續賦值。

C 字元 字串 字元陣列 字串指標 指標陣列

一 c 字元 字串 字元陣列 字串指標 指標陣列 前言 一 字元指標 字元陣列 二 字串指標 三 字串 指標陣列 四 常用方法 參考為了深入理解c 並時常回顧學過的知識點,對c 知識點進行記錄總結。參考1字元指標的儲存方式 字元指標變數本身是乙個變數,用於存放字元 字串的首位址。字串本身是存放在以該...

字串 陣列 指標

所謂陣列,就是 相同資料型別 的元素按一定順序排列的集合 字串 c 語言中的字串其實就是 以空字元 0 結尾的 char陣列。指標 指標也是一種 資料型別 指標變數是用來 存放位址值的。1 指標的數值就是它所指向的物件的位址。2 在指標前運用運算子 就可以得到指標所指向的物件的數值。3 對指標加1 ...

陣列,指標,字串

二維陣列與二級指標,二維陣列可以表示為知道二級指標中一維的長度。int a 與 int a 注意,返回值為乙個二級指標的函式不能賦值給二維陣列。int a int fun x int a int fun v fun是函式名 指標的值永遠是位址。p永遠是該位址上的內容,但是有時候卻有點誤解。char ...