#include
#include
struct nameinfo
{
char name[50];
char phone[50];
int num[20];
};
void main()
{
struct nameinfo a;
a.num=120;//左操作数必须为左值
pritnf("%d", a.num);
system("pause");
}
这是为什么?
//在这里你的num是一个数组,a.num表示这个数组的首地址(可看下面运行结果为16进制地址),这个地址是确定的,我们不可以对其进行赋值
//对变量才可以进行赋值操作
void main()
{
struct nameinfo a;
//a.num=120;//左操作数必须为左值
printf("%p", a.num);
system("pause");
}
//这样才可以 数组名表示首地址
void main()
{
struct nameinfo a;
a.num[0]=120;//左操作数必须为左值
printf("%d", a.num[0]);
system("pause");
}
在C语言中,数组名表示的是数组的首地址,是一个地址常量。既然是常量,就不能作左值。