gpt4 book ai didi

c - c中char的地址错误

转载 作者:行者123 更新时间:2023-11-30 15:34:58 25 4
gpt4 key购买 nike

我在这种情况下遇到了一些问题。我想迭代 ASCII 表并将这些值保存到 char* 中。我的代码是这样的:

for(char c = '.'; c <= 'z'; c++)
{
char* key = c; //I would like to get key = "A", key = "B" and so on
}

我尝试:

for(char c = '.'; c <= 'z'; c++)
{
char* key = &c;
}

但是如果我使用 printf 打印“key”,我会得到奇怪的值,而不是“A”、“B”等。我得到像 f@�F�50 这样的值

最佳答案

C 字符串应始终以零字节终止。所以尝试一下:

for(char c = '.'; c <= 'z'; c++) {
char buf[2];
buf[0] = c;
buf[1] = '\0';
printf("buf=%s\n", buf);
}

c 的地址后面跟着垃圾字节(可能非零)。因此打印 &c (作为 C 字符串)是 undefined behavior .

关于c - c中char的地址错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23100562/

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