gpt4 book ai didi

c++ - int* const* foo(int x);是一个有效的 C 函数原型(prototype)。你怎么 "read"这个返回类型?

转载 作者:塔克拉玛干 更新时间:2023-11-03 08:21:42 25 4
gpt4 key购买 nike

我在阅读 Jeff Lee 于 1985 年发布的 ANSI C 语法规范时注意到这是一个有效的原型(prototype),并且我使用此签名编译了一个函数。具有此原型(prototype)的函数究竟会返回什么?这个函数的简单主体是什么样的?

最佳答案

返回类型是指向 const 的指针,指向 int。从右到左阅读声明,这会使事情变得容易得多。我最喜欢的复杂指针声明教程:http://c-faq.com/decl/spiral.anderson.html

一些(相当人为的)例子:

#include <iostream>

int* const * foo(int x)
{
static int* const p = new int[x]; // const pointer to array of x ints
for(int i = 0; i < x ; ++i) // initialize it with some values
p[i] = i;
return &p; // return its address
}

int main()
{
int* const* p = foo(10); // our pointer to const pointer to int
//*p = nullptr; // illegal, cannot modify the dereferenced pointer (const)
std::cout << (*p)[8]; // display the 8-th element
}

关于c++ - int* const* foo(int x);是一个有效的 C 函数原型(prototype)。你怎么 "read"这个返回类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30881042/

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