本文目錄一覽:
- 1、C語言對字符數組S賦值為什麼 char s;s=”beijing”;錯了
- 2、c語言字符數組賦值,這個為什麼是錯的:char s[10]; s=”abcde”?
- 3、C語言中將字符串賦值給字符數組的問題
- 4、C語言怎樣給字符數組賦值
- 5、C語言對字符數組S賦值為什麼 char s[20];s=”beijing”;錯了。那char s[20]={‘b’,’e’};對嗎
- 6、C語言對字符數組的賦值
C語言對字符數組S賦值為什麼 char s;s=”beijing”;錯了
char s; 表示變量s的類型是字符型,只能存儲一個字符,比如s =’a’; 而”beijing”是字符串,因為變量類型不匹配則不行。若要這樣可以使用數組,char s[]=”beijing”;這表示s是一個字符數組,裏面的單個數據的類型為字符。s[0]=’b’,s[1]=’e’,…..
c語言字符數組賦值,這個為什麼是錯的:char s[10]; s=”abcde”?
從語法上來講,這個賦值是不行的,可以寫成char s[10]=”abcde”;
我們來深入研究下這種賦值為什麼不行;假設上面的語句都合法,那麼char s[10],將會分配內存,大小為10位元組,假設分配的內存地址為a1,此時s就代表數組的首地址,所以s=a1;現在看第二個語句s=”abcde”,”abcde”也會在內存中分配空間,假設地址為a2,那麼執行s=”abcde”後就變成了s=a2,那豈不是和之前s=a1衝突?所以C語言是不允許這樣的賦值的。
C語言中將字符串賦值給字符數組的問題
char s[20];s=”helo”;這樣錯誤的原因就是:不能用賦值語句將一個字符串常量直接給一個字符數組賦值。
char s[20];
char ss[]=”hello”;
s=ss;錯誤原因是:不能用賦值語句將一個字符數組直接給一個字符數組賦值
,即字符串的複製(c語言中,但是在c++的string 類,上面的賦值是正確的)必須用strcpy()函數實現。
而char a[ ]=」toyou「;正確的原因是:因為在聲明數組變量的時候就是,為其開闢空間,並為其初始化,這樣才是符合c語言語法的。
擴展資料:
C語言中字符串賦值的理解
一、指針式賦值
上面的示例是顯然可以正常執行的,也是很容易理解的。但是下面這種方式就令人有點難以理解了。
通過程序的運行情況,我們可以知道:char *p = “hello”;這種字符串的賦值方式是完全沒有問題的。要理解這種賦值方式,我們首先得理解雙引號(特別注意:這個是雙引號,不要賦值的時候給弄了個單引號)在這個語句中做了什麼工作。雙引號主要做了3個工作,分別是:
(1)申請了空間(在常量區),存放了字符串。
(2)在字符串尾加上了「\0」。
(3)返回地址。
這裡所返回的地址就賦值給了char *類型的指針變量p。
二、通過字符數組直接把字符串賦值。程序如下:
三、需要注意的一些問題
直接把字符串賦值給數組名(也就是數組首元素的首地址)是不行的。
C語言怎樣給字符數組賦值
1、單字符賦值,可通過數組下標方式或指針方式,引用數組元素,進行賦值。
例子:
char a[10];
char ch=’a’;
for( i=0;i10;i++ )
a[i]=ch+i ; //可通過數組下標引用數組元素,完成賦值
char *p;
for( p=a; pa+10; p++ )
*p=ch++; //通過指針對數組相應元素賦
2、字符串賦值,可使用string.h頭文件中的字符串操作函數進行賦值。
例子:
char a[10];
strcpy( a, “abcdefgh”);
sprintf(a, “%s”, “abcdefgh”);
擴展資料:
C語言給字符數組賦值的優點:
1、簡潔緊湊、靈活方便
C語言一共只有32個關鍵字,9種控制語句,程序書寫形式自由,區分大小寫。把高級語言的基本結構和語句與低級語言的實用性結合起來。C 語言可以像彙編語言一樣對位、位元組和地址進行操作,而這三者是計算機最基本的工作單元。
2、運算符豐富
C語言的運算符包含的範圍很廣泛,共有34種運算符。C語言把括號、賦值、強制類型轉換等都作為運算符處理。從而使C語言的運算類型極其豐富,表達式類型多樣化。靈活使用各種運算符可以實現在其它高級語言中難以實現的運算。
參考資料:百度百科 C語言基礎語句
C語言對字符數組S賦值為什麼 char s[20];s=”beijing”;錯了。那char s[20]={‘b’,’e’};對嗎
第一,字符串的賦值應該是strcpy(s,”beijing”); (該函數包含在頭文件string.h中)
第二,你可以直接在開始就初始化char s[20]=”beijing”;
char s[20]={‘b’,’e’};是對的,但沒必要那麼麻煩
你可以百度 字符數組賦值 第一個就說的比較全
C語言對字符數組的賦值
在C語言中,字符串賦值是不能用=的.只能在定義的時候使用.在定義後賦值要用賦值函數strcpy().你的程序中可以使用strcpy(str,”I love china!”)來完成.這個函數聲明包含在string.h文件中
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/295394.html