了解關於指標的字串陣列

2021-10-06 17:36:58 字數 1181 閱讀 6931

char a[5] = ;

int m = strlen(a) / sizeof(char);

int n = sizeof(a) / sizeof(char);

可以得出因為strlen得出的是實際長度,所以m=3;

sizeof得出的是定義長度,所以n=5;

char a = "abcdef";

char *b = "abcdef";

int m=sizeof(a);

int n=sizeof(b);

a直接是指這串字元的首位址,所以m就是這串字元的長度,m=7;

而b是以指標的形式指向字串,根據規定,指標型別的長度為4,所以n=4;

char a = ;

char *b = ;

char *c = ;

cout << *a << "  " << *b << "  " << *(c+1) << endl;

cout << **b << "  " << **c << endl;

顯示:a  a  aorld

a  d

根據執行結果顯示然後再模擬char a可得;

b和c是指向陣列中第n項字串的指標,所以*b,*c顯示的就是每個陣列的第1個字串;

而*b也可看作*b,即為指向第n個字串的字串內部指標,所以**b顯示的是第乙個字串的第乙個字母。

此時用到指標型別長度為4的性質。

const char*a = ;

int m = sizeof(a) / sizeof(*a);

cout << m << "  " << sizeof(a) << "  " << sizeof(*a) << endl;

顯示:4     16   4

所以得出這個指標字串陣列有4個字串。

所以若遍歷這個指標字串陣列看下面**

const char*a = ;

int m = sizeof(a) / sizeof(*a);;

for (int i = 0; i < m; i++)

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

今天測了乙個程式,發現了一些不懂的問題,下面貼上 和自己的一些想法。1.用指標指向乙個字串,並嘗試修改字串。char p hello p 2 c printf the word is s n p 編譯沒有問題,但是執行沒有任何的輸出。我們都知道p指向 hello 的首字母 h 的位址,但printf...

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

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

字串,字串陣列,字串指標!!

字串 字元陣列實際上是一系列字元的集合,也就是 字串 string 字串陣列 在c語言中,沒有專門的字串變數,沒有string型別,通常就用乙個字元陣列來存放乙個字串。c語言規定,可以將字串直接賦值給字元陣列 在c語言中,字串總是以 0 作為串的結束符。上面的兩個字串,編譯器已經在末尾自動新增了 0...