C语言指针长度及其使用的探讨

C语言指针长度及其使用的探讨,第1张

C语言指针长度及其使用的探讨

首先我们看一段代码

#include
int main(void)
{
    printf("%dn",sizeof(int*));
    printf("%dn",sizeof(char*));
    printf("%dn",sizeof(float*));
    printf("%dn",sizeof(double*));
    getchar();
    return 0;
}

这段代码中,我们分别读取了几种类型指针的长度,会是什么结果呢?

四种指针长度一致

所以它们一样,或者目前看起来一样

下面我们来看另一段代码

#include
int main(void)
{
    int a = 0x123456;
    int* pi = &a;
    char* pc = &a;
    *pi = 0;
    printf("%Xn",a);
    getchar();
    return 0;
}

猜猜结果是什么?

完全替换掉了

我们再用char*试试

#include
int main(void)
{
    int a = 0x123456;
    int* pi = &a;
    char* pc = &a;
    *pc = 0;
    printf("%Xn",a);
    getchar();
    return 0;
}

 会和前面的一样吗?

 只替换了两个bit

虽说长度一样,但不能混用哦

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5115225.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-11-17
下一篇 2022-11-17

发表评论

登录后才能评论

评论列表(0条)

保存