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.作为函数参数时,要分清指针还是变量。要是指针就直接传入,要是变量就取地址&。


关于指针在结构体中的调用

typedef struct { int dat; int *ptr; }Sample; Sample temp; printf("%d\n",&temp.dat); pri...
  • u011362297
  • u011362297
  • 2014年04月12日 11:48
  • 1192

结构体指针的定义和引用

指针变量非常灵活方便,可以指向任一类型的变量,若定义指针变量指向结构体类型变 量,则可以通过指针来引用结构体类型变量。 7.3.1 指向结构体类型变量的使用 首先让我们定义结构体: struc...
  • dldw8816
  • dldw8816
  • 2014年11月27日 10:35
  • 2592

函数参数调用指针、结构体

一、函数调用指针时 void main(void) { int a,int b; a=5; b=3; fun(&a,&b); } void fun(*p1,*p2) { int c...
  • gongdileidechouzhu
  • gongdileidechouzhu
  • 2017年02月23日 15:41
  • 207

结构体中的函数

C语言真是很灵活,今天发现结构中函数的应用,就查了些资料总结一下。其实在结构体已经和C++中的类功能差不多,只是其是面向过程,没有了作用域的要求,如public等你可以在结构体中定义函数,然后对其调用...
  • boy8239
  • boy8239
  • 2008年02月27日 17:02
  • 6240

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

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

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

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

C语言关于结构体做参数传递

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

(struct)结构体变量作为函数参数调用的方法小结

结构体变量作为函数参数传递的3种方法 将一个结构体变量中的数据传递给另一个函数,有下列3种方法: 用结构体变量名作参数。一般较少用这种方法。 用指向结构体变量的指针作实参,将结构体变量的地址传给形参...
  • tham_
  • tham_
  • 2015年04月29日 19:37
  • 23944

函数指针与指针函数以及结构体调用函数的方法

以前忘记在哪见过见过C语言中:结构体通过指针的方式调用函数的方法,就一直找,找了半天,同时发现自己对函数指针和指针函数这两个概念没搞清楚。下面先说一下两者的区别。再者就是说一下结构体是如何通过函数指针...
  • lg2lh
  • lg2lh
  • 2012年02月08日 13:49
  • 12420

C语言结构体中定义函数指针详解

在学习嵌入式我们经常和结构体函数指针打交道,还有链表,环形缓冲区之类的,这里中点讲解结构体中定义函数指针。下面这个程序你看一遍你基本也明白用法了。 下面是我写的一个很简单的程序struct.c #in...
  • qq_21792169
  • qq_21792169
  • 2015年12月30日 17:24
  • 21047
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:C语言结构体指针在函数调用中的使用
举报原因:
原因补充:

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