gpt4 book ai didi

c - 整数类型指针的大小和 int* 的大小

转载 作者:行者123 更新时间:2023-12-03 09:44:37 24 4
gpt4 key购买 nike

我开始阅读指针并在修改它们的同时。我偶然发现了这一点:

#include<stdio.h>
int main()
{
int *p,a;
a=sizeof(*p);
printf("%d",a);
}

它输出:4

然后在 sizeof(*p)的地方我用 sizeof(int*) 替换了它现在它输出 8 。

P 是整数类型的指针, int* 也是一样的东西(我的假设正确吗?)。那么为什么它打印两个不同的值。我在 64 位 gcc 编译器上执行此操作。

最佳答案

每个初学者总是对指针声明和取消引用指针感到困惑,因为语法看起来是一样的。

  • int *p;意思是“声明一个指向 int 的指针”。你也可以写成 int* p; (含义相同,个人喜好)。
  • *p ,当在声明中以外的任何其他地方使用时,表示“获取 p 指向的内容”。

  • 因此 sizeof(*p)意思是“给我 p 指向的内容的大小”,但是 sizeof(int*)意思是“给我指针类型本身的大小”。在您的机器上, int显然是 4 个字节,但指针是 8 个字节(典型的 64 位机器)。

    关于c - 整数类型指针的大小和 int* 的大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30436432/

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