C 语言结构体和枚举完全指南:成员访问、字符串操作、枚举基础

C 语言结构体和枚举完全指南:成员访问、字符串操作、枚举基础 访问结构体成员要访问结构体的成员请使用点语法 (.):代码语言cAI代码解释// 创建名为 myStructure 的结构体 struct MyStructure { int myNum; char myLetter; }; int main() { // 创建名为 s1 的 myStructure 的结构体变量 struct MyStructure s1; // 为 s1 的成员分配值 s1.myNum 13; s1.myLetter B; // 打印值 printf(My number: %d\n, s1.myNum); printf(My letter: %c\n, s1.myLetter); return 0; }现在您可以使用只使用一个结构体轻松创建多个具有不同值的结构体变量代码语言cAI代码解释// 创建不同的结构体变量 struct MyStructure s1; struct MyStructure s2; // 为不同的结构体变量分配值 s1.myNum 13; s1.myLetter B; s2.myNum 20; s2.myLetter C;如何在结构体中使用字符串请记住C 语言中的字符串实际上是字符数组不幸的是您无法像这样为数组分配值代码语言cAI代码解释struct MyStructure { int myNum; char myLetter; char myString[30]; // 字符串 }; int main() { struct MyStructure s1; // 尝试为字符串分配值 s1.myString Some text; // 尝试打印值 printf(My string: %s, s1.myString); return 0; }会发生错误prog.c:12:15: error: assignment to expression with array type但是有一个解决办法您可以使用 strcpy() 函数并将值分配给 s1.myString如下所示代码语言cAI代码解释struct MyStructure { int myNum; char myLetter; char myString[30]; // 字符串 }; int main() { struct MyStructure s1; // 使用 strcpy 函数为字符串分配值 strcpy(s1.myString, Some text); // 打印值 printf(My string: %s, s1.myString); return 0; }结果My string: Some text更简单的语法您也可以在声明时为结构体变量的成员分配值只需一行。只需在花括号 {} 内插入一个以逗号分隔的列表中的值。请注意您不必使用 strcpy() 函数来为字符串值使用此技术代码语言cAI代码解释// 创建结构体 struct MyStructure { int myNum; char myLetter; char myString[30]; }; int main() { // 创建一个结构体变量并为其分配值 struct MyStructure s1 {13, B, Some text}; // 打印值 printf(%d %c %s, s1.myNum, s1.myLetter, s1.myString); return 0; }注意插入的值的顺序必须与结构体中声明的变量类型的顺序一致对于 int 为 13对于 char 为 B等等。C 语言中的枚举 (enum)枚举 (enum) 是一种特殊类型用于表示一组常量不可更改的值。要创建枚举请使用 enum 关键字后跟枚举的名称并用逗号分隔枚举项代码语言cAI代码解释enum Level { LOW, MEDIUM, HIGH };注意最后一个项目不需要逗号。使用大写字母不是必需的但通常被认为是良好的实践。Enum 是“enumerations”的缩写意为“特别列出”。要访问枚举您必须创建一个变量。在 main() 方法中指定 enum 关键字后跟枚举的名称 (Level) 和枚举变量的名称 (myVar)代码语言cAI代码解释enum Level myVar;现在您已创建了一个枚举变量 (myVar)可以为其分配一个值。分配的值必须是枚举中的项目之一 (LOW、MEDIUM 或 HIGH)代码语言cAI代码解释enum Level myVar MEDIUM;默认情况下第一个项目 (LOW) 的值为 0第二个 (MEDIUM) 的值为 1依此类推。如果现在尝试打印 myVar它将输出 1表示 MEDIUM代码语言cAI代码解释int main() { // 创建一个枚举变量并为其分配一个值 enum Level myVar MEDIUM; // 打印枚举变量 printf(%d, myVar); return 0; }更改值如您所知枚举的第一个项目的值为 0。 第二个值为 1依此类推。为了使值更易于理解您可以轻松地更改它们代码语言cAI代码解释enum Level { LOW 25, MEDIUM 50, HIGH 75 }; printf(%d, myVar); // 现在输出 50请注意如果您为一个特定项目分配值则下一个项目将相应地更新其编号代码语言cAI代码解释enum Level { LOW 5, MEDIUM, // 现在为 6 HIGH // 现在为 7 };枚举在 switch 语句中枚举通常在 switch 语句中使用以检查相应的值代码语言cAI代码解释enum Level { LOW 1, MEDIUM, HIGH }; int main() { enum Level myVar MEDIUM; switch (myVar) { case 1: printf(Low Level); break; case 2: printf(Medium level); break; case 3: printf(High level); break; } return 0; }为什么和何时使用枚举枚举用于为常量命名这使代码更易于阅读和维护。当您拥有不会改变的值时例如月天、日、颜色、纸牌等等请使用枚举。