c++ - c++中*(arr+1)+1和(*(arr+1))+1有什么区别

标签 c++ pointers

我最近在学校用 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/

相关文章:

c++ - 我怎样才能拥有一个具有不同参数类型的对象,同时它也在一个 vector 中?

c - 将指向 C 结构的指针存储为整数

c++ - 继承和转换

.net - 使用按钮转到另一个窗口窗体

c++ - 初始化指向另一个结构内部结构的指针

c++ - 使用 'new' 和指针理解 C++ 代码

c++ - char* (int) 在 C++ 中是什么意思?

c++ - 为什么指定的初始化程序没有在 g++ 中实现

c++ - 当 extern const 被赋予新值而没有任何错误时,程序失败。需要对此进行解释

c++ - 使 OpenSSL 服务器只接受来自已经拥有服务器公共(public)证书的客户端的连接