Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/58.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
打印字符的ASCIVALUE会产生意外的输出_C_Char_Printf - Fatal编程技术网

打印字符的ASCIVALUE会产生意外的输出

打印字符的ASCIVALUE会产生意外的输出,c,char,printf,C,Char,Printf,我知道,在stackoverflow上有一些解决方案。但我不知道为什么我的一个不行 char *ink[90] strcpy(ink, "hi"); printf("stepiii %c \n",ink[0] ); printf("ascii %d\n",ink[0] ); 而不是“ascii 104”返回错误值,如 “ascii 26984” 我做错了什么?您正在创建指针数组并将字符复制到其中。您

我知道,在stackoverflow上有一些解决方案。但我不知道为什么我的一个不行

            char *ink[90]
            strcpy(ink, "hi");
            printf("stepiii %c \n",ink[0] );
            printf("ascii %d\n",ink[0] );
而不是“ascii 104”返回错误值,如

“ascii 26984”


我做错了什么?

您正在创建指针数组并将字符复制到其中。您需要一个
char
数组,并将字符复制到其中,如下所示

char ink[90]
strcpy(ink, "hi");
printf("stepiii %c \n", ink[0]);
printf("ascii %d\n", ink[0]);
您所做的是错误的,因为
ink[0]
是数组中第一个指针的地址,您使用
strcpy()
初始化了数组,这将触发不兼容的指针类型警告,启用编译警告以避免此情况


它在您的代码中调用未定义行为的方式,您的程序可能会崩溃或发生任何事情。打印的值没有意义。

您正在创建指针数组并将字符复制到其中。您需要一个
char
数组,并将字符复制到其中,如下所示

char ink[90]
strcpy(ink, "hi");
printf("stepiii %c \n", ink[0]);
printf("ascii %d\n", ink[0]);
您所做的是错误的,因为
ink[0]
是数组中第一个指针的地址,您使用
strcpy()
初始化了数组,这将触发不兼容的指针类型警告,启用编译警告以避免此情况

它在您的代码中调用未定义行为的方式,您的程序可能会崩溃或发生任何事情。打印的值没有意义。

在代码中

  char *ink[90]
这是错误的。您不需要指针数组,如代码段其余部分所示。换成

  char ink[90]= {0};
如果您对以前的输出感到疑惑,则调用该代码。因此,输出本质上是无意义的,不能被信任。

在您的代码中

  char *ink[90]
这是错误的。您不需要指针数组,如代码段其余部分所示。换成

  char ink[90]= {0};

如果您对以前的输出感到疑惑,则调用该代码。因此,输出基本上没有意义,不能信任。

阅读警告。…
strcpy(墨水,“hi”)???也不是说
%d
字符
参数的错误格式说明符。使用
%hhd
@Olaf默认参数升级不解决这个问题吗?@SouravGhosh:基本上是的,但格式字符串类型应始终与参数类型匹配。不过,我不确定编译器是否会对此发出警告。@Olaf我也是这么想的。谢谢你的回复。:)阅读警告……
strcpy(墨水,“hi”)???也不是说
%d
字符
参数的错误格式说明符。使用
%hhd
@Olaf默认参数升级不解决这个问题吗?@SouravGhosh:基本上是的,但格式字符串类型应始终与参数类型匹配。不过,我不确定编译器是否会对此发出警告。@Olaf我也是这么想的。谢谢你的回复。:)