gpt4 book ai didi

c - 转换为 char 的浮点值

转载 作者:太空宇宙 更新时间:2023-11-04 02:33:59 25 4
gpt4 key购买 nike

在下面的代码中,

#include<stdio.h>
int main(){
char array[] = {'1', 2, 5.2};
char* my_pointer = array[2];
printf("%c", *my_pointer);
}

5.2 存储在内存中的 IEEE 754 表示中,char 从这个浮点表示中挑选 8 位(第一个),由于小端格式。

C 是一种松散类型的语言。允许将 float 转换为 char

为什么程序核心转储?

最佳答案

char* my_pointer = array[2];

错了。它的 RHS 是 char 类型,而不是 char*。调高编译器中的警告级别将帮助您识别此类问题。

使用 gcc -Wall,我收到以下警告:

soc.c: In function ‘main’:
soc.c:4:23: warning: initialization makes pointer from integer without a cast
char* my_pointer = array[2];

在那之后,程序有未定义的行为。

你需要的是:

char* my_pointer = &array[2];

char* my_pointer = array + 2;

关于c - 转换为 char 的浮点值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39965300/

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