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)也是一个“变量”. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |