c語言數組賦值函數 c語言數組賦值方式


c語言數組賦值函數 c語言數組賦值方式

文章插圖
大家好,小跳來為大家解答以上的問題 。c語言數組賦值方式,c語言數組賦值函數這個很多人還不知道,現在讓我們一起來看看吧!
1、char s[20];s="helo";這樣錯誤的原因就是:不能用賦值語句將一個字符串常量直接給一個字符數組賦值 。
2、char s[20];char ss[]="hello";s=ss;錯誤原因是:不能用賦值語句將一個字符數組直接給一個字符數組賦值,即字符串的復制(c語言中,但是在c++的string 類,上面的賦值是正確的)必須用strcpy()函數實現 。
3、而char a[ ]=”toyou“;正確的原因是:因為在聲明數組變量的時候就是,為其開辟空間,并為其初始化,這樣才是符合c語言語法的 。
4、擴展資料:C語言中字符串賦值的理解一、指針式賦值上面的示例是顯然可以正常執行的,也是很容易理解的 。
5、但是下面這種方式就令人有點難以理解了 。
6、通過程序的運行情況,我們可以知道:char *p = "hello";這種字符串的賦值方式是完全沒有問題的 。
【c語言數組賦值函數 c語言數組賦值方式】7、要理解這種賦值方式 , 我們首先得理解雙引號(特別注意:這個是雙引號,不要賦值的時候給弄了個單引號)在這個語句中做了什么工作 。
8、雙引號主要做了3個工作,分別是:(1)申請了空間(在常量區) , 存放了字符串 。
9、(2)在字符串尾加上了“” 。
10、(3)返回地址 。
11、這里所返回的地址就賦值給了char *類型的指針變量p 。
12、二、通過字符數組直接把字符串賦值 。
13、程序如下:三、需要注意的一些問題直接把字符串賦值給數組名(也就是數組首元素的首地址)是不行的 。
本文到此分享完畢,希望對大家有所幫助 。