1. c語言字元數組如何初始化
C語言允許用字元串的方式對數組作初始化賦值。例如:
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。
(1)c語言如何給字元串賦初值為零擴展閱讀:
數組的使用規則:
1.可以只給部分元素賦初值。當{ }中值的個數少於元素個數時,只給前面部分元素賦值。例如:static int a[10]={0,1,2,3,4};表示只給a[0]~a[4]5個元素賦值,而後5個元素自動賦0值。
2.只能給元素逐個賦值,不能給數組整體賦值。例如給十個元素全部賦1值,只能寫為:static int a[10]={1,1,1,1,1,1,1,1,1,1};而不能寫為:static int a[10]=1;請注意:在C、C#語言中是這樣,但並非在所有涉及數組的地方都這樣,資料庫是從1開始。
3.如不給可初始化的數組賦初值,則全部元素均為0值。
4.如給全部元素賦值,則在數組說明中, 可以不給出數組元素的個數。例如:static int a[5]={1,2,3,4,5};可寫為:static int a[]={1,2,3,4,5};動態賦值可以在程序執行過程中,對數組作動態賦值。這時可用循環語句配合scanf函數逐個對數組元素賦值。
網路-數組
2. C語言里有沒有把數組元素全部賦值為0的函數
方法一、在定義時賦初值
1、靜態數組
int[3][3]={0};
2、動態數組
int**a=newint*[n];
for(inti=0;i<n;i++)
a[i]=newint[m](0);
方法二、在定義完後賦值
for(inti=0;i<n;i++)
{
for(intj=0;j<m;j++)
a[i][j]=0;
}
方法三、用一個循環吧數組所有元素設置為0:
intarr[100];
inti=0;
for(i=0;i<100;i++)
arr[i]=0;//ThiswillmakeallZERO
方法四、
1、全局變數和靜態變數初始化時會自動被設置為0。如果們聲明全局變數,那麼在運行前會變成全0。
intarr[1024];//Thisisglobal
intmain(void)
{
//statements
}
2、對於局部數組簡寫的初始化語法。如果一個數組被部分初始化,沒有被初始化的元素會被自動設置為相應類型的0。這是編譯器自動完成的。可以這樣寫:
intmain(void)
{
intarr[1024]={0};//ThiswillmakeallZERO
//statements
}
3、可以用memset函數在程序開始時初始化數組。這條命令這在已經修改了數組之後又想將它重置為全0特別有用。
intarr[1024];
arr[5]=67;
memset(ZEROARRAY,0,1024);//ThiswillreinitializealltoZERO
3. C語言關於數組賦初值的問題char buff[10]={0};
需要注意的是:char
buff[5]={0};和char
buff[5]={'0'};是兩個完全不同的概念:
char
buff[5]={0};的賦的是一個字元串的結束符,而不是一個字元'0';
char
buff[5]={'0'};才是給第一個字元賦值為'0'。
大家喜歡用char
buff[5]={0};主要是想製造一個空的字元串,
你調試一下就知道了:
如果這樣寫:
#include
void
main
{
char
buff[5]={0};
printf("%s",buff);
}
是沒有任何輸出的,因為printf遇到的buff的第一個字元就是個字元串的結束符'\0'
而如果這樣寫:
#include
void
main
{
char
buff[5]={'0'};
printf("%s",buff);
}
才會看到輸出了一個'0'
這才是你理解的給第一個單元賦值為『0』。
char
buff[5]={0};是一種定義空字元數組的嚴謹的寫法!
4. C語言中怎麼字元串賦值
需要准備的材料分別有:電腦、C語言編譯器。
1、首先,打開C語言編譯器,新建一個初始.cpp文件,例如:test.cpp。
5. 怎麼進行字元串賦值C語言
在C語言中,字元串的賦值主要有兩種方法,第一種是通過指針的方式直接賦值,第二種是通過數組直接賦值。
1、指針式賦值。
6. c語言中怎樣給整型和字元型賦空值(NULL)
NULL在32位操作系統的內存中的表現就是0x0000 0000 0000 0000 0000 0000 0000 0000,即32位都為0,其值其實為0
所以,有
int i = 0; //讓i為NULL
char c = '\0'; //'\0'在內存中的表現也為一串0,等價與0和NULL
7. C語言字元串可以這樣賦初值么
可以的,不過這個寫法不好,一般這樣
char a[4*n]={0}; //段散32位CPU內存對喚如齊,且初始化和燃啟為0
strcpy(a,"abcdedf.....");
8. c語言字元串賦初值
scanf("%c",&s[i]); /*這條語句就是要你輸入字元*/
for(i=0;i<7;i++)
printf("%c",s[i]); /*這里是輸出你輸入的字元
二,三樓的說的都錯了,你運行程序時直接可以給數組賦初值的野孫
我絕脊或想你沒搞明白的是到底上面輸入的是字元,還是字元串吧
%c格式輸入輸出的是單個字元
%s格式輸入輸出的是一個字元串
因為你上面的是並伍字義的一個數組,所以輸入輸出的時候都是string,%c格式是將單個字元依次給數組,輸出時也是單個輸出的