gpt4 book ai didi

对带有字符的 C 类型类型转换感到困惑

转载 作者:太空宇宙 更新时间:2023-11-04 06:27:37 24 4
gpt4 key购买 nike

我是 C 编程的初学者,我正在编写一个简单的程序来将字符串加密为 rot13 Ceaser 密码。现在,我知道如何在 C 中转换 float 和整数,但我真的不知道下面的字符会发生什么:

我这样做 char test = 'A' + 13;

我得到 N 作为输出。很好!!但是怎么办? `下面发生了什么?我的猜测是“A”被转换为整数,两者都被添加,然后最后答案再次被转换为一个字符。为什么会这样?

最佳答案

在C语言中,char等类型是数字,'A'是一种迂回的写法,int值65(提供您的字符集是 ASCII,在所有现代平台上都是如此)。因此,表达式 'A' + 13 等同于 65 + 13,其结果被强制转换为 char,即左侧的类型-赋值运算符的手边。

换句话说,不是 'A' 被转换为 int,而是 65 和 13 的 int 之和转换为 char

关于对带有字符的 C 类型类型转换感到困惑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24721949/

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