當前位置:首頁 » 編程語言 » c語言字元型數組初始化
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

c語言字元型數組初始化

發布時間: 2022-08-04 06:35:09

⑴ 怎麼對字元數組初始化

char s[]={'a','b','c'};

s數組自動初始化為帶三個元素的數組

如果是unsigned char類型,則只能使用前者形式了。

static char c[]={'c',' ','p','r','o','g','r','a','m'}; 可寫為:

static char c[]={"C program"}; 或去掉{}寫為:

static char c[]="C program";

當對全體元素賦初值時也可以省去長度說明。例如:static char c[]={`c`,` `,`p`,`r`,`o`,`g`,`r`,`a`,`m`};這時C數組的長度自動定為9。

初始化

字元數組的初始化與數值型數組初始化沒有本質區別。但它除了可以逐個給數組元素賦予字元外,也可以直接用字元串對其初始化。

如果在定義字元數組時不進行初始化,則數組中各元素的值是不可預料的。如果花括弧中提供的初值個數(即字元個數)大於數組長度,則出現語法錯誤。如果初值個數小於數組長度,則只將這些字元賦給數組中前面那些元素,其餘的元素自動定為空字元(即'')。

以上內容參考:網路-字元數組

c語言字元數組初始化的問題

char *a[ ]={"asdf","asdfsadf"}這個是指針數組,相當於char *a[2]={"asdf","asdfsadf"}
然後第一個是char a[1] = {'a','s','d'},char a[2] =......

char a[ ]={"asdf","asdfsadf"} 這樣是不行的,如果是字元數組,就得用單引號,雙引號是字元串,
char m1[ ]={'a','b','c''\0'} 這個是字元數組,
char m1[ ]={'a','sdfb','c''\0'},這樣是不行的,單引號裡面是一個字元,雙引號才能出現連續字元。
如有不明可以追問。

⑶ C語言中 字元串數組的初始化格式是怎麼樣的

比如:
char
a[10]="\0";
用API
memset(a,'\0',sizeof(a));
也可以寫個for來完成
記得採納啊

⑷ C語言如何讓二維字元數組全部被初始化為同一個值

1、要有這樣一個malloc產生的二維數組,或者用New產生的也行。

⑸ c語言如何先聲明後初始化字元數組

在定義的時候就對數組進行賦值操作稱為初始化;

先定義後賦值並不能稱為初始化,只能叫做對數組進行賦值操作。


舉例如下:

chara[]="abcd";//定義(聲明)字元數組a,並進行初始化
//以下為數組的賦值操作
charb[5];//定義(聲明)一個字元數組b
//對字元數組每個元素進行賦值
b[0]='a';
b[1]='b';
b[2]='c';
b[3]='d';
b[4]='e';

⑹ C語言數組 初始化

1
數組可以是任何類型的,不限於int和char,結構體數組也可以
2
數組自然是為了訪問方便,相同類型的一系列變數
3
局部變數未初始化的話值未知,全局的話是
0
4
多數時候給
0
就行了

⑺ C語言中,字元數組(字元串)初始化方式區別

數組長度指的是數組的元素個數,字元串長度是以『\0』為標志來確定的,舉個例子:
char a[20]="abc";
數組長度是20,而字元串長度是3,隱含的'\0'不算在字元串長度中。

⑻ c語言的字元串數組初始化問題

  1. 你申請數組空間後,內存中存放字元的順序是:

    str1[0],str1[1],str1[2],str1[3],str1[4],str2[0],str2[1],str2[2],str2[3]

  2. 當輸入字元串是:abc 123時,存儲的數據str1[0]~str1[4],str2[0]~str2[3]為:

    『a','b','c',0,xx,'1','2','3',0

    其中,xx表示一個不關心的任意值,也就是說輸入字元串"abc"需要佔用4個位元組的存儲空間

  3. 當輸入字元串1為"abcde"時,存儲的數據為:'a','b','c','d','e',0,xx,xx,xx

    字元串末尾的0已經超出了str1開設的存儲空間而存放到了str2[0]位置

    接著再輸入字元串"1234"時,str2[0]的str1字串的結尾符被字元'1'覆蓋,

    存儲的數據為:'a','b','c','d','e',』1『,』2『,』3『,』4『,0

    而且由於str2輸入字元數為4個其佔用空間也超出了str2的空間范圍,那麼上邊存儲的0值也不知道覆蓋了什麼變數的位置,導致其他變數的值被沖掉了。

  4. 當執行printf("%s ",str1);時,printf從str1[0]開始輸出的字元串(遇0結束輸出)為abcde1234

  5. 當執行printf("%s ",str2);時,printf從str2[0]開始輸出的字元串(遇0結束輸出)為1234

所以你輸入的第1個字元串字元數少於5時,存儲不會溢出,多於4個時,末尾的0就會被輸入的str2所覆蓋而失效,且多於5的字元也會被覆蓋。scanf並不能保證輸入字元的長短不會溢出,你應當在設計程序時考慮到這點,預先定義足夠的字元串保存空間或用其他方法來避免這個問題的出現。

⑼ c語言字元數組初始化

如果是定義的全局,變數字元數組可以不用初始化因為全局變數會自動初始化為0值。如果是局部變數可以在定義的時候就給他初始化,也可以在定義完成以後,再用一個循環對他的所有元素進行初始化。

⑽ C語言定義字元型數組時,兩種初始化方式的區別