问题描述
- vs2015左操作数必须为左值
- #include
#includestruct 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语言中,数组名表示的是数组的首地址,是一个地址常量。既然是常量,就不能作左值。
时间: 2024-08-02 15:51:28