gpt4 book ai didi

c++ - *test++ = count + '0' 是什么意思;做?

转载 作者:行者123 更新时间:2023-11-27 22:49:51 25 4
gpt4 key购买 nike

这是我正在尝试的一些示例代码:

#include <iostream>

int main() {

char string[] = "hello";
char *test = string;

int count = 0;
*test++ = count + '0';
count++;
*test++ = count + '0';

std:: cout << test << std:: endl;

}

输出是llo

我知道这可能很简单,但我对这行代码感到困惑:*test++ = count + '0';。如果 count = 0,添加 '0' 有什么作用(添加零)?并且在评估*test++时,test的位置先递增,然后解引用?它究竟被分配了什么?

最佳答案

char 存储字符的数字编码,因此 count + '0' 只是两个数字的总和。实际上,数字 0, ..., 9 往往具有连续的编码,因此可以快速将数字转换为相应的(编码)字符是 digit + '0'

*p++ 被解析为 *(p++) 并且是“获取 p 指向的东西,然后前进”的常见习语p”。所以 *p++ = xx 存储在 p 最初指向的位置,之后 p 指向下一个地方。

(回想一下,z++ 的值是存储在 z 之前的值,而不是 递增之后)

关于c++ - *test++ = count + '0' 是什么意思;做?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38416606/

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