C语言中,箭头符号 “->” 和点号符号 “.” 的区别

作者:问答酱2024.01.18 05:51浏览量:17

简介:在C语言中,箭头符号“->”和点号符号“.”是用于访问结构体成员的关键字,但它们之间存在一些重要的区别。本文将详细解释这两个符号的区别,并提供一些示例代码来帮助理解。

在C语言中,箭头符号“->”和点号符号“.”都可以用于访问结构体(struct)的成员。然而,它们在使用方式和语义上有一些重要的区别。

  1. 点号“.”:
    点号用于访问结构体成员时,必须先声明一个该结构体的变量,然后使用点号来访问该变量的成员。点号还可以用于数组和函数指针的索引。例如:
    1. struct Student {
    2. char name[50];
    3. int age;
    4. };
    5. int main() {
    6. struct Student s;
    7. s.age = 20;
    8. printf("Student name: %s, age: %d", s.name, s.age);
    9. return 0;
    10. }
    在上面的例子中,我们声明了一个名为Student的结构体,并在main函数中创建了一个该结构体的变量s。然后,我们使用点号来访问s的成员age并将其设置为20。最后,我们使用点号来访问s的成员nameage,并将它们打印到控制台上。
  2. 箭头符号“->”:
    箭头符号用于通过指针访问结构体的成员。当你有一个指向结构体的指针时,可以使用箭头符号来访问该结构体的成员。例如:
    1. struct Student {
    2. char name[50];
    3. int age;
    4. };
    5. int main() {
    6. struct Student *p;
    7. p = &s;
    8. (*p).age = 20;
    9. printf("Student name: %s, age: %d", (*p).name, (*p).age);
    10. return 0;
    11. }
    在上面的例子中,我们声明了一个指向Student结构体的指针p,并将它设置为变量s的地址。然后,我们使用箭头符号来访问p所指向的结构体的成员age并将其设置为20。最后,我们使用箭头符号来访问p所指向的结构体的成员nameage,并将它们打印到控制台上。
    总结:
  • 点号“.”用于访问结构体变量的成员,需要先声明变量。
  • 箭头符号“->”用于通过指针访问结构体的成员,需要先声明指针并让它指向一个结构体变量。
  • 点号和箭头符号都可以用于数组和函数指针的索引。
  • 在使用点号或箭头符号时,需要注意数据类型和作用域的问题,以避免出现编译错误或运行时错误。