gpt4 book ai didi

c++ - 当您声明 "pointer type"形式(函数)参数 "like an const array"时,const 是什么?

转载 作者:行者123 更新时间:2023-11-30 21:08:35 25 4
gpt4 key购买 nike

当您声明“指针类型”形式(函数)参数“如 const 数组”时,const 是什么?

即:如果 T 是类型标识符,则为:

void f(const T arr[]);

相当于:

void f(const T * const arr);

void f(const T * arr);

void f(T * const arr);

如何解密 C/C++ 标准来找到这一等价物? :-)

关于上述声明的含义,C 和 C++ 之间以及标准的不同版本之间是否存在差异? (对于 C - ANSI C89 及更高版本的标准相关)

最佳答案

首先我要说的是:

void f(int const* p);

void f(const int* p);

具有相同的含义,这意味着它是一个指向无法更改的值的指针。

还有另一种方法来声明指针:

void f(int* const p);

这意味着常量指针,你不能将它分配给另一个地址。

至于你的问题,下面的代码

void f(const T arr[]);

将转换为

void f(const T* arr);

它将是指向数组第一个元素的指针

关于c++ - 当您声明 "pointer type"形式(函数)参数 "like an const array"时,const 是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37794733/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com