C语言结构体类型声明和定义标准形式
2016-01-19 14:57
253 查看
结构体是一种自定义的数据类型,所以结构体类型的声明最好和结构体变量的定义区分开。
结构体变量定义的两种方式
//结构体定义的第一种方式,通常的变量定义形式,但是一般情况下我们传递结构体变量都是传地址以减少赋值内存内容的开销,所以一般情况下还有一个语句:Student *pa=&a;
Student a={ 20,79,’f’};
Student *pa=&a;
我们干嘛不直接定义一个指向结构体变量的指针呢?所以体现了第二种方法的便利性。
//第二种方式
Student *pstu=malloc(sizeof(Student));
pstu->age=20;
pstu->score=79;
pstu->sex=’f’;
传递参数的时候直接把pstu传过去就over了。
[code]#include <stdio.h> typedef struct student //结构体类型的申明与定义分开。这里是类型 声明;一般放在.h文件中 { int age; /*年龄*/ float score; /*分数*/ char sex; /*性别*/ }Student; int main () { Student a={ 20,79,'f'}; //结构体定义的第一种方式 //第二种方式 Student *pstu=malloc(sizeof(Student)); pstu->age=20; pstu->score=79; pstu->sex='f'; printf("年龄:%d 分数:%.2f 性别:%c\n", a.age, a.score, a.sex ); return 0; }
结构体变量定义的两种方式
//结构体定义的第一种方式,通常的变量定义形式,但是一般情况下我们传递结构体变量都是传地址以减少赋值内存内容的开销,所以一般情况下还有一个语句:Student *pa=&a;
Student a={ 20,79,’f’};
Student *pa=&a;
我们干嘛不直接定义一个指向结构体变量的指针呢?所以体现了第二种方法的便利性。
//第二种方式
Student *pstu=malloc(sizeof(Student));
pstu->age=20;
pstu->score=79;
pstu->sex=’f’;
传递参数的时候直接把pstu传过去就over了。
相关文章推荐
- c++ struct的两个注意点
- C++程序后台运行代码
- C语言函数指针的使用举例
- CodeBlocks调试C&C++代码的方法
- Eclipse中 C/C++ 开发
- 堆排序使用的问题
- C++复数类的运算符重载
- C语言內嵌汇编
- C++头文件一览
- c++日期类的实现级运算符的重载
- 用纯C语言实现快速排序,分递归调用法和非递归调用法。
- 《C语言及程序设计初步》第37讲实践项目
- c++引用做函数返回值
- 设计模式C++实现:单例模式(Singleton)
- C语言MD5实现
- 关于C++多进程,多线程及内存分布的参考
- 【Accelerated C++】重点回顾(续)
- c++ 获取win10系统版本
- 经典的C++库
- 关于c语言中随机数生成连续播种的问题(初学者向)