1、数组赋值问题
需要整体赋值时只可以在定义的同时整体赋值,或者用内存拷贝函数。
正确:
int a[10]={0,1,2,3,4,5,6,7,8,9};
char *week_day[8]=
{"sunday",
"monday",
"tuesday",
"wednesday",
"thursday",
"friday",
"saturday",
NULL
}; /* 说明指针数组。数组中的每个元素指向一个字符串 */
struct student
{
long num;
char name[20];
char sex;
char addr[20];
};
struct student students[3]={ {10101, "Li Lin", 'M', "Beijing"},{10102, "zhang", 'F', "shanghai"} …...};
struct
{
long num;
char name[20];
char sex;
char addr[20];
} students[3]={ {10101, "Li Lin", 'M', "Beijing"},{10102, "zhang", 'F', "shanghai"} …...};
错误:
int a[10];
a[10]={0,1,2,3,4,5,6,7,8,9};
可以只给一部分元素赋值,对全部数组元素赋值时可以不指定数组长度, 但是,既不赋初值,也不指定长度是错误的。
正确:
int a[10]={5,8,7,6};后面没有赋值的元素值默认为0。
int a[10]={0,1,2,3,4,5,6,7,8,9};
可以写成 int a[]={0,1,2,3,4,5,6,7,8,9};
char a[]="happy";
char a[]={"happy"}; 注意,因为字符串结尾自动加'\0',所以char a[]="happy";长度为6,不是5。
char a[]={'h','a','p','p','y'};注意,长度为5
char *week_day[8];
char * week_day []=
{"sunday",
"monday",
"tuesday",
"wednesday",
"thursday",
"friday",
"saturday",
NULL
};
int *p[10];//指针数组,含有10个指针元素
错误:
int a[];
char *week_day[];