服务网站建设的公司排名,wordpress模板区块链,免费书画网站怎么做的,微信wordpress提醒目录
结构体
为什么有结构体#xff1f;
1.结构体的声明
1.2结构体变量的访问和初始化
2.结构体成员的访问 结构体
struct 结构体类型
{//相关属性;
}结构体变量; 结构体和数组不同#xff0c;同一类型的数据的集合是数组#xff1b; 结构体是多种类型的数据的集合
1.结构体的声明
1.2结构体变量的访问和初始化
2.结构体成员的访问 结构体
struct 结构体类型
{//相关属性;
}结构体变量; 结构体和数组不同同一类型的数据的集合是数组 结构体是多种类型的数据的集合 为什么有结构体 在平常生活中我们记录一个一个学生的信息往往是每人一张信息卡这里面记录了名字身高等信息这些不是简单的整型数组就能解决的。像这种卡片形式的数据结构是通过结构体(struct)实现的。 1.结构体的声明
struct Stu
{//定义学生相关属性char name[0];int age;
}s3,s4;
//s3s4是结构体类型Stu的变量名字
// s3,s4是全局变量 结构的成员可以是标量、数组、指针甚至是其他结构体。 1.2结构体变量的访问和初始化
struct str
{int x;int y;
}s1; //声明类型的同时定义变量s1
struct str s2; //定义结构体变量s2 同样可以对其赋值采用{}的形式 struct str
{int age;char name[20];
};
struct str s1 {18,zhangsan}; struct student
{int num;char name[10];
};
int main()
{struct student s1;struct student s2;return 0;
} 总结 结构体类型定义的末尾必须有分号 成员类型可以是除本身所属结构体类型外的任何已有数据类型 在同一作用域内结构体类型名不能与其他变量名或结构体类型名重名 结构体类型的作用域与普通变量的作用域相同在函数内定义则仅在函数内部起作用在函数外定义则有全局作用 2.结构体成员的访问 结构体变量访问成员 结构变量的成员是通过点操作符.访问的。点操作符接受两个操作数 struct student
{int age;char name[20];int score;
}stu1 {20,zhangsan,60};int main()
{printf(%s %d, stu1.name, stu1.age);return 0;
} 有时候我们得到的不是一个结构体变量而是一个结构体的指针 struct Stu
{char name[20];int age;
};
void print(struct Stu* ps)
{printf(name %s age %d\n, (*ps).name, (*ps).age);//使用结构体指针访问指向对象的成员printf(name %s age %d\n, ps-name, ps-age);
}
int main()
{struct Stu s {zhangsan, 20};print(s); //结构体地址传参return 0;
}总结 函数传参的时候形参是实参的一份拷贝参数是需要压栈的。 如果传递一个结构体对象的时候结构体过大参数压栈的的系统开销比较大所以会导致性能的 下降。 结构体传参的时候要传结构体的地址。 以上是简单的对C语言中结构体的介绍不足之处还望指点。