我无法理解以下代码:
const char *suit[4] = {"Hearts", "Diamonds", "Clubs", "Spades"}
我不明白array suit里面存的是什么,是指针吗?如果是这样,字符串存储在哪里?
还有,是指针常量,还是数组常量?
如果能完整详细地解释这段代码,以及内存中发生了什么,我将不胜感激!
提前致谢。
最佳答案
我们通过使用 cdecl.org 学到了很多东西.这就是它告诉我们关于 suit
的内容:
declare suit as array 4 of pointer to const char
所以:
- 该数组包含 4 个指针。
- 每个指针指向一个
char
(在本例中,是每个字符串的第一个字符)。 - 指针不是
const
,数组也不是。
字符串是文字;它们的存储位置是特定于实现的。
在 ASCII 艺术中:
"Clubs"
^
| "Spades"
| ^
| |
+---+---+---+---+
suit | | | | |
+---+---+---+---+
| |
| v
| "Diamonds"
v
"Hearts"
注意 suit
本身不是指针;这是数组的名称。
关于c - 关于数组和指针的存储,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14300131/