我最近在学校用 C++ 学习二维数组,我也学习了指针。但这让我感到困惑。
#include<iostream>
#include<stdlib.h>
using namespace std;
int main()
{
system("cls");
char arr[][6]={"Name1","Name2"};
cout<<*(arr+1)+1<<endl;
cout<<(*(arr+1))+1<<endl;
system("pause");
}
我得到的输出是:
ame2
ame2
我被告知 *
运算符的优先级低于 +
运算符。那为什么 *(arr+1)+1
和 (*(arr+1))+1
给出相同的输出? C++ 对它们的处理方式不同吗?
最佳答案
不,指针解引用运算符的优先级高于加法运算符,所以 *(arr+1)+1
和 (*(arr+1))+1
是一样的。
关于c++ - c++中*(arr+1)+1和(*(arr+1))+1有什么区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35112518/