char c[10];//初始化
c[0]='I'; c[1]=' '; c[2]='l'; c[3]='o'; c[4]='v'; c[5]='e'; c[6]=' '; c[7]='y'; c[8]='o'; c[9]='u';
-------------------------------------------------------------------
char b[10]={"abcxsdfg"};
-------------------------------------------------------------------
char a[8]={'i','e','o','d','e','b','o','u'};
-------------------------------------------------------------------
char a[11];//輸入輸出
for(i=0;i<10;i++)→ for(i=0;i<10;i++)
a[i]=getchar();//一個(gè)一個(gè)賦值 ----- putchar(a[i]);//一個(gè)一個(gè)輸出
-------------------------------------------------------------------
for(i=0;i<10;i++)→ for(i=0;i<10;i++)
scanf("%c",&a[i]);//一個(gè)一個(gè)賦值 ----- printf("%c",a[i]);//一個(gè)一個(gè)輸出
-------------------------------------------------------------------
scanf("%s",a);//這個(gè)一下輸入一串字符;空格,回車作為分隔符;
printf("%s",a);//這個(gè)一下輸出一串字符;
-------------------------------------------------------------------
gets(a);//這個(gè)一下輸入一串字符;只有回車作為分隔符;
puts(a);//只有用gets();輸入才可以用puts();
1 列出數(shù)組所有元素值進(jìn)行初始化,比如,下面的列出了4個(gè)元素所有值
int a[4] = {1,2,3,4};
2 初始化數(shù)量少于元素?cái)?shù)量,比如下面的數(shù)組有4個(gè)元素,但只給了兩個(gè)初始值
int a[4] = {1,2};
等價(jià)于 int a[4] = {1,2, 0, 0};
3 不指定數(shù)組維數(shù)初始化
int a[] = {1,2,3,4};
4 特殊情況, 字符數(shù)組初始化
char x[5] = "abcd";
等價(jià)于 char x[5] = {'a', 'b', 'c', 'd', '\0'};
1、直接逐個(gè)初始化字符數(shù)組:
字符數(shù)組的初始化,最容易理解的方式就是逐個(gè)字符賦給數(shù)組中各元素。
1
char str[10]={ 'I',' ','a','m',' ','h','a','p','p','y'};
注意:如果花括號(hào)中提供的字符個(gè)數(shù)大于數(shù)組長度,則按語法錯(cuò)誤處理;若小于數(shù)組長度,則只將這些字符數(shù)組中前面那些元素,其余的元素自動(dòng)定為空字符(即'\0' )。
2、用字符串常量來初始化字符數(shù)組:
在c語言中,將字符串作為字符數(shù)組來處理。因此可以使用字符串來初始化字符數(shù)組。
1
char str[]={"I am happy"};
也可以省略花括號(hào)。
1
char str[]="I am happy";
但是,上述這種字符數(shù)組的整體賦值只能在字符數(shù)組初始化時(shí)使用,不能用于字符數(shù)組的賦值,字符數(shù)組的賦值只能對(duì)其元素一一賦值,下面的賦值方法是錯(cuò)誤的。
1
2
char str[];
str="I am happy";//錯(cuò)誤,字符數(shù)組的賦值只能按元素一一賦值
可以的:
#include<string>
#include<iostream>
using namespace std;
void main()
{ string str[3]={"a","123","e1ghi"};
int i;
for ( i=0;i<3;i++ ) cout<<str[i]<<endl;
}
字符數(shù)組的初始化與數(shù)值型數(shù)組初始化沒有本質(zhì)區(qū)別。但它除了可以逐個(gè)給數(shù)組元素賦予字符外,也可以直接用字符串對(duì)其初始化。
(1)用字符常量逐個(gè)初始化數(shù)組。例如:
char a[8]={'i','l','o','v','e','y','o','u'};
用逐個(gè)初始化的方法與數(shù)值型數(shù)組初始化本質(zhì)上是一樣的,同樣也可以進(jìn)行完全賦初值及不完全賦初值,但是不完全賦值時(shí)沒有賦值的元素被賦為空格。
當(dāng)對(duì)全體元素賦初值時(shí)也可以省去長度說明。例如:
char c[ ]={'c',' ','p','r','o','g','r','a','m'};
這時(shí)C數(shù)組的長度自動(dòng)定為9。
(2)字符串常量初始化數(shù)組。例如:
char c[ ]={'c',' ','p','r','o','g','r','a','m'};
可寫為:
char c[ ]={"C program"};
或去掉{}寫為:
char c[ ]="C program";
空格算字符的,不過你寫的是空字符。。既然空格算字符了(空字符也占一個(gè)空間) 那么有十二個(gè)字母就越界了。。
這樣的初始化是合法的 不過一定不要超過設(shè)置的最大長度。。。
如果不等于而是小于 那么剩下的就是隨機(jī)的。。
如果首先不設(shè)置限制的話,那么系統(tǒng)會(huì)自動(dòng)統(tǒng)計(jì)個(gè)數(shù)。
就是這樣也可以char str2[]={'a',' ','b','c','d','e','f','g','h','i','j','k','l'};
樓上說的結(jié)束符不加也是可以的,只是為了輸出等用途的時(shí)候,可以不用考慮數(shù)組長度
聲明:本網(wǎng)站尊重并保護(hù)知識(shí)產(chǎn)權(quán),根據(jù)《信息網(wǎng)絡(luò)傳播權(quán)保護(hù)條例》,如果我們轉(zhuǎn)載的作品侵犯了您的權(quán)利,請(qǐng)?jiān)谝粋€(gè)月內(nèi)通知我們,我們會(huì)及時(shí)刪除。
蜀ICP備2020033479號(hào)-4 Copyright ? 2016 學(xué)習(xí)鳥. 頁面生成時(shí)間:3.631秒