c语言中* p+ i为什么不可以赋值为1?

如题所述

出现该错误提示是因为语法错误。

“left operand must be l-value”的意思是左操作数必须是左值。

左值(l-value):出现于“=”左边的标识符。(为变量)。

右值(r-value):出现于“=”右边的标识符。(变量或表达式)。

表达式:产生确定不变的值。类似于a1x^n + a2x^n-1 +...+ an多项式(n>=1)。

*p+i 是一个表达式,是右值,不能对其进行赋值。应改用*(p+i)来表示数组中的第i+1个变量,同样的,还有*(p+j)。

扩展资料:

C语言程序结构——

C语言的模块化程序结构用函数来实现,即将复杂的C程序分为若干模块,每个模块都编写成一个C函数,然后通过主函数调用函数及函数调用函数来实现一大型问题的C程序编写,因此常说:C程序=主函数+子函数。因此,对函数的定义、调用、值的返回等中要尤其注重理解和应用,并通过上机调试加以巩固。

判断语句(选择结构):

if 语句:“如果”语句;if—else 语句:“若…(则)…否则…”语句;switch 语句:“切换”语句;switch—case:“切换—情况”语句。

循环语句(循环结构):

while 语句:“当…”语句;do—while 语句:“做…当…(时候)”语句;for 语句:条件语句(即“(做)…为了…”语句)。

跳转语句(循环结构:是否循环):

goto 语句:“转舵”语句,也称“跳转”语句;break 语句:“中断”(循环)语句,即结束整个循环;continue 语句:“继续”语句(结束本次循环,继续下一次循环);return 语句:“返回”语句。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2023-10-22
根据运算符优先级,* p+ i,即(* p)+ i
也就是p[0]+i,显然不是个可修改的左值,不可被赋值
应该写成*(p+i),即p[i]
相似回答