utk*_*867 5 c++ arrays pointers initialization operators
这些天我一直在研究阵列.我以这种方式遇到了一个数组的声明和元素的初始化:
int x[+30];
x[+1]=0;
Run Code Online (Sandbox Code Playgroud)
这让我有点困惑.我有这个概念,当我们写:
x[n]=0;
Run Code Online (Sandbox Code Playgroud)
那意味着:
*(x+n)=0;
Run Code Online (Sandbox Code Playgroud)
然后写作x[+1]意味着*(x++1)这似乎无效.请纠正我在理解这个概念时所犯的错误.
该+加号可以充当一元运算符.它通常没有效果,但结果是它在数字被解决之前被删除.例如:
int x[+30];
Run Code Online (Sandbox Code Playgroud)
转换为
int x[operator+(30)];
Run Code Online (Sandbox Code Playgroud)
然后变成了
int x[30];
Run Code Online (Sandbox Code Playgroud)
因此,这个表达
x[+1] = 0;
Run Code Online (Sandbox Code Playgroud)
只会解决为
x[1] = 0;
Run Code Online (Sandbox Code Playgroud)
它不会解析为*(x ++ 1),特别是因为它在c ++中不是有效的语法.
| 归档时间: |
|
| 查看次数: |
271 次 |
| 最近记录: |