gpt4 book ai didi

c - 指向指针的指针有什么作用?字符**

转载 作者:太空宇宙 更新时间:2023-11-04 00:15:55 25 4
gpt4 key购买 nike

char x[16];
int y = 42 + 256;
char* p = &y;
int* q = p;
char** r = &p;
printf("%d %d %d\n", p, q, r);

为什么r的值总是比p和q小12个单位?谢谢!

最佳答案

你打印的是三个内存地址。由于它们是在堆栈上分配的(假设它们不是全局的),我希望是这样的:

2030 2026 2022

假设一个 32 位机器和 4 字节指针。

* 是指向指针的指针。如果您使用正确的类型,它会变得更清晰。

char *str = "hello world";

str 在这种情况下是指向以 null 结尾的字符序列的指针。

char **p = &str;

表示指向一串字符的指针。

我说“正确的类型”是因为你有,例如:

int y = 42 + 256;
char* p = &y;

实际上这应该是:

int *p = &y;

在这种情况下使用 char * 的通常原因是检查各个字节。

关于c - 指向指针的指针有什么作用?字符**,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2130185/

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