gpt4 book ai didi

Char(单个字母)必须是一个指针才能正常工作?

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

我已经搜索过,也许这甚至不是问题,但是在使用 C 中的字符时(我在 Mac 上使用 X-Code)我在处理它们时遇到了问题,除非我使用指针

int main(int argc, const char * argv[]){
char myChar = "A";

print("%c\n",myChar);
print("%d\n",myChar);

print("%c\n",65);
print("%c\n",74);

return 0;

}

所以,简单的东西,但这是输出:

>J
>74

>A
>J

如您所见,当我使用 %c 打印 myChar 时,它给了我字母 J 而不是 A,当我使用 %d 时也是如此,给了我 74(J 的字符代码)和不是 65 岁。

我的变量声明也有一条警告消息:

Incompatible pointer to integer conversion initializing char with an expression of type char[2]"

这有点奇怪。

现在用这个替换我的代码时:

int main(int argc, const char * argv[]){
char *myChar = "A";

print("%c\n",*myChar);
print("%d\n",*myChar);

print("%c\n",65);
print("%c\n",74);

return 0;

}

输出符合预期:

>A
>65

>A
>J

知道这种行为的原因吗?我是不是漏掉了什么,或者我没听懂什么?

最佳答案

在你的代码中,

char myChar = "A";

不正确。 "A" 是一个字符串文字,不适合char。你可能想写

 char myChar = 'A';

相反。

注意:启用编译器警告并注意它们。

关于Char(单个字母)必须是一个指针才能正常工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35123966/

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