加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c – 为什么和 – 仅在变量之前和之后使用?

发布时间:2020-12-16 10:55:08 所属栏目:百科 来源:网络整理
导读:我正在阅读Brian W. Kernighan和Dennis M. Ritchie在第46页上的“C编程语言”,其中指出“增量和减量运算符只能应用于变量;像(i j)这样的表达式是非法的”.为什么不能在变量之前或之后使用? 解决方法 我不确定你的意思是“仅在变量之前”.运算符和 – (后缀
我正在阅读Brian W. Kernighan和Dennis M. Ritchie在第46页上的“C编程语言”,其中指出“增量和减量运算符只能应用于变量;像(i j)这样的表达式是非法的”.为什么不能在变量之前或之后使用?

解决方法

我不确定你的意思是“仅在变量之前”.运算符和 – (后缀和前缀)都需要可修改的左值作为操作数.左值不一定由立即变量名称表示.

例如,您可以这样做

int a[10] = { 0 };
++*(a + 5);

*(a 5)是你理解中的“变量”吗?

i j的问题不在于它“不是变量”. i j的问题在于它不是左值.这就是为什么你不能申请它.

在C语言中,术语“变量”有时被用作术语“可修改的[标量]对象”的半非正式同义词,后者又与术语“可修改的左值[标量类型]”同义.你所指的那本书可能在半非正式的意义上使用了“变量”一词.从这个意义上说,*(a 5)也是一个“变量”.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读