gpt4 book ai didi

c - 指针的指针在这段 C 代码中如何工作?

转载 作者:行者123 更新时间:2023-11-30 21:31:37 24 4
gpt4 key购买 nike

int r = 50;
int *p;
int **k;
int ***m;
printf( "r: %d ", r );
p = &r;
k = &p;
m = &k;
***m = 100; //line 9
printf( "r: %d\n", r );

当只有一个指针时,我可以理解,我们取 100 并将其分配给指针所保存的地址处的变量。但是,当我们使用多个指针级别执行此操作时,到底一步一步发生了什么? (第 9 行)

最佳答案

int *p=&r:p 是一个指向 int 的指针,它采用 r的地址.

int **k=&p:k 是一个 pointer-to-(pointer-to-int ),它采用p的地址

int ***m=&k:m是一个指向-(pointer-to-(pointer-to-int))的指针 code>,它采用 k 的地址。

当你执行***m = 100时,你正在“展开”指针,最后你得到的只是int

关于c - 指针的指针在这段 C 代码中如何工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35973479/

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