C语言结构体指针在函数调用中的使用

原创 2015年11月19日 11:38:32

接触嵌入式编程已经有一段时间了,平时的编程中会经常遇到结构体,但是就直接拿来用了,没有注意过细节,结果遇到问题就纠结了。趁这个机会,研究了一下C语言的结构体和结构体指针,顺便总结一下!

注:关于结构体的三种形式,可以自己研究研究。

我实验的程序如下:

#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语言关于结构体做参数传递

水平有限,谈谈自己的看法 首先结构体
  • lin37985
  • lin37985
  • 2014年08月15日 11:00
  • 10885

c语言中,结构体做参数调用例子结构体形参例子

c语言中,结构体做参数调用例子结构体形参例子 typedef struct AnyscanFtStr { int StrID; int StrFac...

C语言结构体(struct)常见使用方法

结构体与函数: 关于传参,首先: void func(int); func(a.b.c); 把结构体中的int成员变量当做和普通int变量一样的东西来使用,是不用脑子就想到的一种方法。 另外两...

C语言——结构体与指针引用&结构体数组与指针引用

最近在搞C语言基础储备,无意间发现在此方面的知识还有漏洞,于是上网查阅资料,看到了下面的正文内容,阅后感到思路清晰心情愉悦。所以就顺手记录了下来,以后要是又忘记可以再来看。当然最主要的还是分享给大家!...

【嵌入式开发】C语言 结构体相关 的 函数 指针 数组

.作者 : 万境绝尘转载请注明出处 : http://www.hanshuliang.com/?post=30.结构体概述 : 结构体是 多个 变量的集合, 变量的类型可以不同;-- 可进行的操作 :...

对嵌入式开发C语言结构体的一点总结

今天冬至居然不上班,公司的良心啊!这回有心情写博客和日志了,好了,废话不多说。直接看下文: 鉴于嵌入式开发过程中,C语言结构体的使用当然是必不可少。话说,基础什么的比你会更牛逼的算法更重要,基础不牢...

结构体指针的定义和引用

指针变量非常灵活方便,可以指向任一类型的变量,若定义指针变量指向结构体类型变 量,则可以通过指针来引用结构体类型变量。 7.3.1 指向结构体类型变量的使用 首先让我们定义结构体: struc...

C语言中结构体指针的定义和引用

 指向结构体类型变量的使用首先让我们定义结构体:struct stu{char name[20];long number;float score[4];} ;再定义指向结构体类型变量的指针变量:str...

利用PHP读取C语言Struct文件

本文主要引用http://blog.csdn.net/binger819623/archive/2009/07/01/4314585.aspx 及http://blog.csdn.net/binger...

C语言通过指针调用函数

#include using namespace std; int fun1(int a) {     cout     return a; } int fun2(int b) ...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:C语言结构体指针在函数调用中的使用
举报原因:
原因补充:

(最多只允许输入30个字)