我还是论坛的新手,所以我提前为论坛 - 礼仪问题道歉。
我无法理解int
数组和char
数组之间的区别。
我最近写了一个欧拉计划问题的程序,最初使用char
数组来存储一串数字,后来调用了特定的字符并尝试int
对它们进行操作来查找产品。当我使用 char 字符串时,我得到了一个大得离谱的产品,显然是不正确的。即使我将我认为会编译为字符 ( str[n]
) 的内容转换为内联整数 ( (int)str[n]
),它也会做同样的事情。只有当我实际使用整数数组时它才起作用。
代码如下
对于char
字符串
char str[21] = "73167176531330624919";
这没有用。我得到了大约 1.5 万亿的答案,而答案应该是 40k 左右。
对于int
数组
int str[] = {7,3,1,6,7,1,7,6,5,3,1,3,3,0,6,2,4,9,1,9};
这确实奏效了。我也取消了在线类型铸造。
任何关于为什么这些事情有效/无效的解释以及任何可以导致更好地理解这些想法的解释都将不胜感激。有用的东西的链接也是如此。我自己研究了很多字符串、数组和指针(我在高中时自学),但这些概念仍然令人困惑。
附带问题,C 中的字符串是自动存储为数组还是可以这样做?