gpt4 book ai didi

c 字符串数组维度

转载 作者:行者123 更新时间:2023-11-30 16:48:41 25 4
gpt4 key购买 nike

char pres[4][2][11] = {
"George", "Washington",
"John", "Adams",
"Thomas", "Jefferson",
"James", "Monroe"
};

有人可以解释一下为什么pres数组是三维的?我尝试用二维循环显示预数组( pres[4][2] ),但是,它不起作用。

最佳答案

这是一个三维字符数组,因为它在概念上是一个二维字符串数组,而字符串是一维空终止字符数组。

虽然这确实有效,但这种方法有一个缺点,即它只能保存长度为 10 的字符串(为空终止符留出空间)。因此,使用 char * 数组,然后根据实际字符串的需要分配和释放空间往往会更灵活。

您说过您尝试查看pres[4][2]。这是没有意义的,因为在 C 中数组索引是从 0 开始的。 pres[3][1] 将是 "Monroe" ——数组中的最后一个字符串.

将它们全部打印出来非常简单:

#include <stdio.h>

int main(void){
int i;
char pres[4][2][11] = {
"George", "Washington",
"John", "Adams",
"Thomas", "Jefferson",
"James", "Monroe"
};
for(i=0;i<4;i++) printf("President %s %s\n",pres[i][0],pres[i][1]);
return 0;
}

哪些输出:

President George Washington
President John Adams
President Thomas Jefferson
President James Monroe

关于c 字符串数组维度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42877022/

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