gpt4 book ai didi

c - 在 C 中初始化和声明字符数组

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

这行得通。

char s[] = {'\x20', '\x09', '\x0a', '\x0d'};

这些不是因为“错误:']'(或'}')标记之前的预期表达式”:

char s[4];
s = {'\x20', '\x09', '\x0a', '\x0d'};

char s[4];
s[]= {'\x20', '\x09', '\x0a', '\x0d'};

char s[4];
s[4]= {'\x20', '\x09', '\x0a', '\x0d'};

有没有什么正确的方法可以在不使用索引的情况下在两条不同的线上进行定义和初始化?我知道我可以说:

char s[4];
s[0] = '\x20';
s[1] = '\x09';
s[2] = '\x0a';
s[3] = '\x0d';

但出于好奇,我是否遗漏了一些微不足道的东西,或者这在 C 语言中是不可避免的吗?

最佳答案

char s[] = {'\x20', '\x09', '\x0a', '\x0d'};

如您所见,未指定数组的大小,因此您需要在此处使用初始化程序,并根据初始化程序计算数组的大小并将其存储在堆栈中。

即使你有

char s[4];

s = {'1','2','3','4'};

这行不通,因为在 C 中,标准说数组不可赋值

如果您需要初始化,那么在声明期间进行初始化,因为您已经在做其他事情,通过 char 填充数组 char 或使用内置函数,如 strcpy()

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

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