gpt4 book ai didi

c - 结构变量初始化

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

我尝试按如下方式初始化结构变量:

struct Abc{
char str[10];
};

int main(){
struct Abc s1;
s1.str="Hello"; //error
}

我可以理解这种行为,因为它与

char str[10];
str="Hello"; // incompatible types

但是看看下面的初始化

struct Abc s1={"Hello"};   //This is fine

struct Abc s2={.str="Hello"}; //This is also fine

我记得在毕业时,我读了很多教科书,它们说这两种初始化是一回事(即使用 { } 符号初始化结构变量和显式使用 (.) 运算符是一回事)。但是上面的讨论证明它们是不一样的。

我的问题是这些初始化之间到底有什么区别?

最佳答案

不同的是,这两行

struct Abc s1={"Hello"};   //This is fine
struct Abc s2={.str="Hello"}; //This is also fine

正在初始化,而这

s1.str="Hello";

赋值。您可以将 char 数组初始化为字符串文字,但不能通过赋值。

关于c - 结构变量初始化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25075792/

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