gpt4 book ai didi

c - C中的字符串数组初始化

转载 作者:太空宇宙 更新时间:2023-11-04 05:12:27 24 4
gpt4 key购买 nike

在 C 语言中,可以用这样的代码行来初始化一个字符串数组:

char *exStr[] = { "Zorro", "Alex", "Celine", "Bill", "Forest", "Dexter" };

在我的调试器上,数组初始化如下:

Debugger view

这与标准二维数组不同,标准二维数组中每个字符串占用相同数量的字节;有人可以指出我正确的方向来理解:

  1. 声明“char *exStr[] = ...”的确切含义;
  2. 如何从我的程序中重新创建相同变量的结构。

最佳答案

What's means exactly the declaration "char *exStr[] = ...";

它的意思是'array of poniter to char'。像“佐罗”这样的字面量字符数据通常放在只读数据段中,数组元素只包含字面量第一个字符的地址。

How can I re-create the same variable's structure from my program.

你可以这样做:

char zorro[] = {'Z', 'o', 'r', 'r', 'o', '\0'}; // initialized every char for clarity
char alex[] = "Alex";
char celine[] = "Celine";
...
char* exStr[] = {
&zorro[0], // explicitly referenced for clarity
alex,
celine,
...
};

关于c - C中的字符串数组初始化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36796308/

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