C语言函数名作为左值 c语言中函数名

C语言中什么叫做左值左值就是在赋值中可以放在赋值操作符两边的值,比如:
int a = 1;
double b = 2.0
a = b;
b = a;
这里a和b都是左值,一切变量都是左值 , 但const变量是例外 。
*p是一个左值 , 和变量一样 , 只要在*p的右边加上赋值运算符,就可改变*p的值 。
如果p是一个指向常量的指针 , *p就是一个不能修改的左值,即它不能被放到赋值运算符的左边 。
i和 -i 都是表达式
但一个是左值(i) , 一个是右值(-i) 。
++,--这两种操作符要求作用于左值,所以i++合法,(-i)++不合法 。
不严谨的讲,左值右值的区分在于位于等号的那一侧 , 左侧的是左值,通常是一个变量,右侧的是右值,可以是一个变量,或者是一个表达式 。
C语言语法问题,左操作数必须为左值是什么意思啊?我该怎么改?。?/h2>所谓左值是指一个能用于赋值运算左边的表达式 。左值必须能够被修改,不能是常量 。我们用变量作左值,还可以看到,指针和引用也可以作左值 。改成b=9-c 。
一般形式为:变量=表达式 。它的作用是将一个表达式的值赋给一个左值 。
计算赋值运算符右侧表达式的值(“=”为赋值运算符),将赋值运算符右侧表达式的值赋给左侧的变量,将赋值运算符左侧的变量的值作为表达式的值 。
例如:
int
a,
b,
c;
a=3;
b=4;
c
=
(
a
+
b
)*(2*a
-
b)
//
得出14
扩展资料:
注意
1.
多重赋值表达式不能出现在变量说明中 。例如:
【C语言函数名作为左值 c语言中函数名】int
i=j=0;
是非法的 。
例:有变量说明
int
a=2,b;
指出下面表达式运算后a和b的结果 。
b+=b=++a;
答:a为3,b为6 。
有时将赋值运算与比较运算结合在一起形成嵌入赋值 。例如:
while
((ch=getchar())!='\n');
这条语句的含义是:等待用户按下回车键后程序向下执行 。
2.
x
*=
y+8等价于x=x*(y+8),不等价于
x
=
x*y+8 。
同样:z
=
y-x等价于z
=
z
(y-x),而不等价于z
=
z
y
-x 。
参考资料:
搜狗百科-赋值运算符
C语言函数返回值都是右值吗c语言中函数返回值都是存储在临时变量里面的,而临时变量是不能作为左值的,即不能放在=左边,因而C语言函数返回值都是右值 。
假设函数Type fun(), 定义Type i , 在c语言中语句 fun() = i; 总是错误的 。
若是c++语言,由于增加了引用()这种类型,使得函数返回值可以作为左值,例如:
int m;
int fun(int n)
{
returnn;
}
执行fun(m) = 5;实际上就是把5赋给m
C语言 什么叫做左值?右值?左值就是在赋值中可以放在赋值操作符两边的值,比如:
int
a
=
1;
double
b
=
2.0
a
=
b;
b
=
a;
这里a和b都是左值,一切变量都是左值,但const量是例外 。
而右值则是只可以放在赋值操作符右边的值,比如:
int
a
=
0;
char
*b
=
"hello";
3
=
a;
//
ERROR
"howdy"
=
b
//
ERROR
这里3和"howdy"都是右值,所以不能放在赋值操作符左边,一切常数、字符和字符串都是右值 。
关于C语言函数名作为左值和c语言中函数名的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息 , 记得收藏关注本站 。

推荐阅读