har* str1 = "abcd";
char str2 = "abcd";
void reverse(char * input, int len)
實際操作時,不能採取str1的初始化形式
1、char* str1 ="abcd"
含義是先新建乙個字串,內容是abcd,然後str1是乙個頭指標,指向這個串。但是這個新建串是作為const存在的,並不是乙個可以編輯的變數,因此,一旦你想更改其中的值,程式就會掛掉。
1)改變str指向的記憶體,會報錯。
2)讓str指向另乙個字串不會報錯。
相應的2、char *str1 = (char*)malloc(5*sizeof(char));
str1 = "abcd";
相當於開闢乙個5個長度的陣列,頭指標是str1,但是第二句又把str1指向的位置變了,之後還是不能操作str1的內容。
示例:
這個的含義是在記憶體中開闢乙個陣列,然後向該陣列中填充"abcd",是乙個可操作的變數。所以初始化的時候可以這麼寫,就能在之後更改其中的內容了。
char 和char 的初始化
char str1 abcd char str2 abcd void reverse char input,int len 在呼叫reverse函式時.從形式上 reverse str1,5 和reverse str2,5 都沒有錯誤,傳入的引數都是char陣列的頭指標,但是實際操作時,不能採取st...
char 和 char 初始化的問題
如下 1.char string 10 2.char string 10 string 0 0 號稱是這兩種方式都可以,我使用的是第一種。第一種方法會使得字串陣列宣告的時候每一位都被置空 第二種方法是用,將字串第一位置空,根據c標準,空字元被認為是字元陣列結束的標誌,所以這樣一來,字元陣列就被初始化...
char 和char 的區別
1 char是乙個陣列定義,char 是指標定義 也稱char為靜態陣列,char 為動態陣列 2 指標和陣列的區別 1 指標和陣列的分配 陣列是開闢一塊連續的記憶體空間,陣列本身的識別符號 也就是通常所說的陣列名 代表整個陣列,可以使用sizeof來獲得陣列所佔據記憶體空間的大小 注意,不是陣列元...