使用字串指標變數和字元陣列的區別
阿新 • • 發佈:2019-02-18
4、對使用字元指標變數和字元陣列兩種方法表示字串的討論
雖然用字元陣列和字元指標變數都能實現字串的儲存和運算,但它們二者之間是有區別的,不應混為一談。
4.1、字元陣列由若干個元素組成,每個元素放一個字元;而字元指標變數中存放的是地址(字串/字元陣列的首地址),絕不是將字串放到字元指標變數中(是字串首地址)
4.2、賦值方式:
對字元陣列只能對各個元素賦值,不能用以下方法對字元陣列賦值
char str[14];
str="I love China"; (但在字元陣列初始化時可以,即char str[14]="I love China";)
而對字元指標變數,採用下面方法賦值:
char* a;
a="I love China";
或者是 char* a="I love China"; 都可以
4.3、對字元指標變數賦初值(初始化 ):
char* a="I love China";
等價於:
char* a;
a="I love China";
而對於字元陣列的初始化
char str[14]="I love China";
不能等價於:
char str[14];
str="I love China"; (這種不是初始化,而是賦值,而對陣列這樣賦值是不對的)
雖然用字元陣列和字元指標變數都能實現字串的儲存和運算,但它們二者之間是有區別的,不應混為一談。
4.1、字元陣列由若干個元素組成,每個元素放一個字元;而字元指標變數中存放的是地址(字串/字元陣列的首地址),絕不是將字串放到字元指標變數中(是字串首地址)
4.2、賦值方式:
對字元陣列只能對各個元素賦值,不能用以下方法對字元陣列賦值
char str[14];
str="I love China"; (但在字元陣列初始化時可以,即char str[14]="I love China";)
而對字元指標變數,採用下面方法賦值:
char* a;
a="I love China";
或者是 char* a="I love China"; 都可以
4.3、對字元指標變數賦初值(初始化
char* a="I love China";
等價於:
char* a;
a="I love China";
而對於字元陣列的初始化
char str[14]="I love China";
不能等價於:
char str[14];
str="I love China"; (這種不是初始化,而是賦值,而對陣列這樣賦值是不對的)