gpt4 book ai didi

c - 为什么指针不给出其 Ascii 值?

转载 作者:太空狗 更新时间:2023-10-29 15:49:54 24 4
gpt4 key购买 nike

这是我目前的代码如下:

#include<stdio.h>
int main() {
/* code */
char a[5] = {'a','b'};
int *p =a;
printf("%d\n", *p);
return 0;
}

当我执行我的代码时,它显示 25185 而不是给我一个 ASCII 值。

为什么会这样?

谢谢

最佳答案

这是未定义的行为,所以任何事情都有可能发生。至于你具体观察到的是什么,这里是解释:

如果数组在声明时只初始化了部分值,则其余值为零。所以你的数组 a'a', 'b', '\0', '\0', '\0'。当指向此数组开头的指针被解释为 32 位小端 int 时,其值为 0x00006261,即十进制的 25185。

关于c - 为什么指针不给出其 Ascii 值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54641362/

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