struct student
{
int x;
char name[10];
};
void main()
{
student st;
st.name= ? ;
}
使用解释一:
st.name="123"; 非法,常量字符串不能直接赋值给字符数组;
因为st.name 地址是确定的,不能再改了。
但:
char name[10]="123";可以,是被允许的;
定义时,进行初始化字符数组。
那结构中怎么办?
字符串就用:
strcpy( st.Number , "123\0"); // 使用技巧:用于赋值的字符串末尾最后加上"\0";原因,避免在再分配数组的空间没有被占用时,出现乱码。
要是数字的话则: sprintf( st.Number , "%d" , 123 );
char name[10]; 使用数组时,最好先清零。
使用memset;或者 简单点直接:char name[10]={0};