gpt4 book ai didi

C - 数组和字符串的混淆

转载 作者:行者123 更新时间:2023-11-30 20:14:43 24 4
gpt4 key购买 nike

我是编程新手,我真的对字符串和数组感到困惑。根据我在网上和我的书中读到的内容,字符串只能保存字符(字母而不是数字),而数组只能保存整数(数字而不是字母)。难道是我的观念有误?

最佳答案

你的概念是错误的。
在c中没有字符串作为数据类型。字符串是一个元素数组,可以表示字符。由于旧的 ascii 表仅包含 256 个字符,因此使用字符(8 位无符号数字)。数组中的第一个 0 数字被解释为字符串结尾。数组中的每个数字表示根据 ascii 代码页的符号。

char a[10] = {'o', 'n', 'e', '\0'};
char b[10] = {111, 110, 101, 0};

这里a和b相等。你也可以这样做

int x = a[0];

x 将保留 'o' 字符,即数字 111。所以

printf("%d", a[0]);

将输出111,并且

printf("%c", a[0]);

将打印o。由于是数字,所以可以比较字符

if ('o' > 'A')

是事实,因为 (int) 'o' == 111 且 (int) 'A' == 65。但是 8 位太少,无法保留许多不同的字符。因此,可以使用其他类型来保留字符,例如 wchar_t 对于 unicode 很流行。因此,字符串可以是 wchar_t 或 int 数组,或任何你喜欢的数组。

关于C - 数组和字符串的混淆,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24914072/

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