給數組賦初值c語言
❶ c語言數組給初值
int a[3],a[3]={0}不對
第一:int 後面是變數的聲明,幾個不同的變數用「,」號隔開,你的變數聲明中有兩個同名的數組a,第一個沒有賦初值,第二個賦了初值,首先不管賦不賦值,你的兩個同名變數就通不過編譯
第二:若要在聲明完變數再用賦值語句賦值的話,應該是
int a[3];
a[0]= 0 ;
a[1]= 0 ;
a[2]= 0 ;
並且,你要用賦值語句賦值的話,a[3]={0},也不對,首先a[3]不存在,數組a的下標是從0到2的,a[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};是一種定義空字元數組的嚴謹的寫法!
❸ C語言,給數組賦初值
數組只能夠初始化進行賦值,類似於const int a = 10;
int A[2][2] = {0}; //注意看與你的寫法區別
要相對數組賦值,只能類似於A[0][0] = x;這種方式,也就是通過間接的方式賦值!
❹ 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};是一種定義空字元數組的嚴謹的寫法!
❺ c語言中如何給數組定義並賦初值
字元串數組定義賦值:
char c[6]={'c', ' h ', 'i', 'n', 'a' , '
