Incoparab 发表于 2023-4-5 18:20

c++二维char数组访问

代码:
~~~
const char *temp[] = {"abc", "def", "ghi"};
cout << *(temp + 1) << endl;
~~~
输出结果:
~~~
g
~~~
我知道**(\*(temp + 1))**的结果是**e**,但是上面的代码是为什么呢。。。

nihaoz 发表于 2023-4-5 20:51

符号优先级问题,等于+2次

无闻无问 发表于 2023-4-5 21:30

先这样
cout << (temp+1) << endl;   //结果ghi

再*,就是g

Incoparab 发表于 2023-4-6 16:57

nihaoz 发表于 2023-4-5 20:51
符号优先级问题,等于+2次

等价于**(temp + 2)了

nihaoz 发表于 2023-4-6 18:32

nihaoz 发表于 2023-4-5 20:51
符号优先级问题,等于+2次

这里其实就是由于[]优先级大于*这个在符号优先级表可以明显看得出,如果没记错[]优先级为2,所以结合了2次 等于直接进行移动了2次
页: [1]
查看完整版本: c++二维char数组访问