char 和char 的初始化

2021-08-14 09:44:30 字數 605 閱讀 9299

char* str1 = 「abcd」;

char str2 = 「abcd」;

void reverse(char * input, int len)

在呼叫reverse函式時. 從形式上 reverse(str1,5) 和reverse(str2, 5)都沒有錯誤,傳入的引數都是char陣列的頭指標,但是實際操作時,不能採取str1的初始化形式.

char* str1 =」abcd」

含義是先新建乙個字串,內容是abcd 然後str1是乙個頭指標,指向這個串. 但是這個新建串是作為const存在的,並不是乙個可以編輯的變數,因此,一旦你想更改其中的值,程式就會掛掉.

相應的

char str1 = (char)malloc(5*sizeof(char));

str1 = 「abcd」;

相當於開闢乙個5個長度的陣列,頭指標是str1,但是第二句又把str1指向的位置變了,之後還是不能操作str1的內容.

char str2 = 「abcd」

這個的含義是在記憶體中開闢乙個陣列,然後向該陣列中填充」abcd」, 是乙個可操作的變數.所以初始化的時候可以這麼寫,就能在之後更改其中的內容了.

**:

char 和char 的初始化

har str1 abcd char str2 abcd void reverse char input,int len 實際操作時,不能採取str1的初始化形式 1 char str1 abcd 含義是先新建乙個字串,內容是abcd,然後str1是乙個頭指標,指向這個串。但是這個新建串是作為con...

char 和 char 初始化的問題

如下 1.char string 10 2.char string 10 string 0 0 號稱是這兩種方式都可以,我使用的是第一種。第一種方法會使得字串陣列宣告的時候每一位都被置空 第二種方法是用,將字串第一位置空,根據c標準,空字元被認為是字元陣列結束的標誌,所以這樣一來,字元陣列就被初始化...

char 和char 的區別

1 char是乙個陣列定義,char 是指標定義 也稱char為靜態陣列,char 為動態陣列 2 指標和陣列的區別 1 指標和陣列的分配 陣列是開闢一塊連續的記憶體空間,陣列本身的識別符號 也就是通常所說的陣列名 代表整個陣列,可以使用sizeof來獲得陣列所佔據記憶體空間的大小 注意,不是陣列元...