2014-09-06 44 views
-5
char array[2]; 
array = "h"; 

提供了以下錯誤:如何通過字符串的字符數組用C

error: incompatible types when assigning to type 'char[2]' from type 'char'

char array[2]; 
array[] = "h"; 

提供了以下警告:

warning: assignment makes integer from pointer without a cast

我嘗試這兩種方式傳遞值h到數組中,但我不能。我想知道問題是什麼。

回答

4

數組不能指向新地址。

可以初始化他們一個字符串常量:

char array[2] = "h"; 

,或者你可以數據複製到陣列後:

char array[2]; 
strcpy(array, "h"); 

或:

array[0] = 'h'; 
array[1] = '\0'; 

如果你使用了char *而不是,您的第一個示例將工作:

char *array = NULL; 
array = "h"; 
+0

謝謝。 *做什麼? – Luke 2014-09-06 14:07:35

+0

'char *'將一個*指針*聲明爲一個字符(或多個字符)。它是C編程的基本組成部分之一;我會盡快通過一些指針教程,如:http://www.tutorialspoint.com/cprogramming/c_pointers.htm – 2014-09-06 14:08:46

+1

是啊即時通訊:)謝謝! – Luke 2014-09-06 14:11:23

相關問題