C语言结构体指针在函数调用中的使用
2015-11-19 11:38
513 查看
接触嵌入式编程已经有一段时间了,平时的编程中会经常遇到结构体,但是就直接拿来用了,没有注意过细节,结果遇到问题就纠结了。趁这个机会,研究了一下C语言的结构体和结构体指针,顺便总结一下!
注:关于结构体的三种形式,可以自己研究研究。
我实验的程序如下:
1.定义结构体指针后,一定要给它分配空间,有两种方式,一种死malloc,另一种是用一个结构体变量的地址给他赋值。
2.通过结构体指针访问接头体成员,用->;通过结构体变量访问成员,用.;并且优先级:.高于*。
3.作为函数参数时,要分清指针还是变量。要是指针就直接传入,要是变量就取地址&。
注:关于结构体的三种形式,可以自己研究研究。
我实验的程序如下:
#include <stdio.h> struct stu { char name[20]; long number; float score[4]; }; struct data { int day; int month; int year; }; int add(struct stu *ss1, struct stu *ss2) { return ss1->number+ss2->number; } int main() { struct stu *s3,*s4,s5,s6; //s3 = malloc(sizeof(struct stu)); //s4 = malloc(sizeof(struct stu)); s3 = &s5; s4 = &s6; s3->number = 1; s4->number = 2; s5.number = 3; printf("%d\n",s3->number); printf("%d\n",s4->number); printf("%d\n",s5.number); printf("%d\n",add(s3,&s5)); printf("%d\n",sizeof(struct stu)); return 0; }注意到一下几点:
1.定义结构体指针后,一定要给它分配空间,有两种方式,一种死malloc,另一种是用一个结构体变量的地址给他赋值。
2.通过结构体指针访问接头体成员,用->;通过结构体变量访问成员,用.;并且优先级:.高于*。
3.作为函数参数时,要分清指针还是变量。要是指针就直接传入,要是变量就取地址&。
相关文章推荐
- C语言常见字符串操作函数
- JNI中javah命令生成C/C++头文件 报错某类找不到
- 最长单调递增子序列O(NlogN)算法
- 新知
- 利用矩阵求两个序列的最长公共子序列
- iOS开发基础之C语言
- Microsoft Visual C++ Package Server 已停止工作
- iOS libc++abi.dylib: terminate_handler unexpectedly threw an exception
- C++笔记总结之关于数组的引用和引用的数组
- JAVA和c++区别整理
- 深入C++的new
- C/C++——const的用法
- C/C++中long long与__int64的区别
- 线索化二叉树C++
- c语言读取每一行,再将符合条件的写入另一个文件中。
- pImp机制--隐藏实现减小头文件依赖
- C/C++参数传递的3种方式
- 20.c/c++程序员面试宝典-引用与值传递
- C/C++与Python混合编程
- python调用C/C++动态链接库和jython