c - 如何评估c中的双指针?

标签 c pointers boolean pointer-to-pointer

我是学c的,对这道双指针题比较迷茫。

int x = 44;
int *p = &x;
int **t = &p;

bool a = (*t = &x);

我需要判断atrue 还是false,正确答案是true。我的想法是t指向p的地址,p指向x的地址。我知道如果你把 **t,它应该指向 x 的地址,但我想如果你只是把 *t 它应该指向p的地址。谁能解释一下?

最佳答案

int x = 44;

声明整型变量x,存储值44。

int *p = &x;

声明整数指针变量 p,p 现在存储 x 的地址。

int **t = &p;

声明指向名为t的int类型指针的指针,t存储p的地址。 (指针也有地址)

bool a = (*t = &x);

在 C 中;

'*' = 从地址中提取值(取消引用)

'&' = 给出变量地址(引用)

因为 t 是指向存储在 p 中的值的指针。 *t将是p中存储的值,也就是x的地址。 (我们在第二行解决了这个问题)

另一方面,因为 & 用于变量 x。这将提取 x 的地址。

因此 *t == &x,将 boolean 值 a 设置为 true。

关于c - 如何评估c中的双指针?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53016944/

相关文章:

C中的循环缓冲区实现

c++ - 动态结构错误,指针转换

c++ - 将数组动态分配到具有指针参数的函数中

android - 调用 getExtra 时 boolean 值将自身重置为 false

python - 如何将 AND 应用于列表的所有元素?

python - 空列表 boolean 值

c - 将单个字符扫描到数组中 C 编程

c - 在C中从右到左解析字符串

c - C 中的指针问题。 段错误

c - 定义返回函数指针的函数有哪些不同风格