AnT*_*AnT 18
我不确定你的意思是"仅在变量之前".运算符++和--(后缀和前缀)都需要可修改的左值作为其操作数.左值不一定由立即变量名称表示.
例如,您可以这样做
int a[10] = { 0 };
++*(a + 5);
Run Code Online (Sandbox Code Playgroud)
*(a + 5)你的理解是"变量"吗?
问题i + j不在于它"不是变量".问题i + j是它不是左值.这就是为什么你不能申请++它.
在C语言中,术语"变量"有时被用作术语"可修改的[标量]对象"的半非正式同义词,后者又与术语"可修改的左值[标量类型]"同义.你所指的那本书可能在半非正式意义上使用了"变量"一词.从这个意义上讲,*(a + 5)它也是一个"变量".