1结构类型

声明结构类型

image.png

结构类型和本地变量一样,在函数内部声明的结构类型只能在函数内部使用。所有通常在函数外部声明结构类型,这样就可以被多个函数使用。

声明结构的形式:

  1. struct point{
  2. int x;
  3. int y;
  4. };
  5. struct point p1,p2;

p1和p2都是point里面有x和y的值

  1. struct{
  2. int x;
  3. int y;
  4. }p1,p2;

p1和p2都是一种无名结构,里面有x和y(短期使用)

  1. struct point{
  2. int x;
  3. int y;
  4. }p1,p2;

p1和p2都是point里面有x和y的值

对于第一和第三两种形式,都声明了结构point。但是第二种形式没有声明point,只是定义了两个变量

结构的初始化

image.png

结构成员:

结构和数组有些像,数组用[ ]运算符和下标访问其成员

  1. a[0]=10;

结构用“.”运算符和名字访问其成员

  1. today.day
  2. student.firstName
  3. p1.x
  4. p1.y

结构运算:

要访问整个结构,直接用结构变量的名字

对于整个结构,可以做赋值、取地址,也可以传递给函数参数

  1. p1=(struct point){5,10};
  2. //相当于p1.x=5,p1.y=10
  3. p1=p2;
  4. //相当于p1.x=p2.x,p1.y=p2.y

结构指针:

和数组不同,结构变量的名字并不是结构变量的地址,必须用&运算符

  1. struct date *pDate=&today;