當前位置:外匯行情大全網 - 期貨行情 - c語言,為什麽char str[]=“我愛中國”可以賦值,但是char str[20];再次賦值是非法的?

c語言,為什麽char str[]=“我愛中國”可以賦值,但是char str[20];再次賦值是非法的?

先說char * str

str= "我愛中國";

這兩句話的本質就是在內存中開辟壹個內存空間,把“我愛中國”放進這個內存空間,然後把這個內存空間的地址給str。因為str是壹個變量,所以給它賦值是合法的。

看char str[]=“我愛中國”;這句話的作用是定義壹個char數組,其中str是數組名和第壹個元素的地址。既然這是變量的定義,編譯器打開內存空間,然後放入字符串,再把地址給str,還是可以接受的。

最後看char str[20];

str = "我愛中國!";在這句話中,首先定義了壹個char數組str,str指向大小為20的內存空間,然後打開壹個內存空間來放字符串。這時候,問題來了。str本身就是壹個固定不變的值,妳強行給它賦壹個新地址當然不合理。

  • 上一篇:磷酸鐵鋰期貨價格
  • 下一篇:期貨多少歲可以開戶
  • copyright 2024外匯行情大全網