给数组赋初值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' , '
