Q:不能把字符串"HELLO!"賦給數組b的語句是(B)數組
A、char b[10]={'H','E','L','L','O','!','\0'};
B、char b[10];b="HELLO!";
C、char b[10];strcpy(b,"HELLO!");
D、char b[10]="HELLO!";
A:字符數組初始化有兩種方法:一種是逐個字符賦值,另外一種是用字符常量對整個數組賦值。 函數
A是第一種,D是第二種,顯然第一種比第二種繁瑣複雜, C是字符串拷貝函數,B不存在將字符串常量直接賦值給char數組變量的方式。 spa
拓展:指針
函數格式: char *strcpy (char *s1, const char *s2); 功能: 將S2所指的字符串拷貝到S1所指的字符串中。 code
說明: 字符串
(1)參數S1S2都是指向字符串的指針。S1能夠是字符數組名或字符指針,但不能是字符型常量,S2能夠是字符串常量、字符數組或字符指針;變量
(2)將S2所指的字符串拷貝到S1所指的字符串中,用賦值語句S1=S2;是不行的,賦值語句要求左邊是左值,S1是常量; 方法
(3)要保證S1的長度足夠大,以便能容納下S2所指的字符串,不然引發錯誤。 C 對於非strtic型數組不初始化,其元素值不能肯定。對strtic數組元素不賦初值,系統會自動賦以0值。co