复习c结构体
来源:互联网 发布:win10 uefi 安装Ubuntu 编辑:程序博客网 时间:2024/06/03 21:31
首先结构体是一种类型,虽然以前老师也说过,但当时只是脑子中的一种印象而已,现在通过敲程序,有了更加深透的理解。其实它就是一种类型而已,就和int char 没神魔两样,只是自己难以一时接受,慢慢吸收就好了。
下面把主要的知识点简练的总结一下:
一.定义结构体变量:
struct book{char a[4];double b[4];}m1,*p,axx[4];
struct book是自己写的一个复杂结构变量,它也可以和基本类型一样 被定义成 普通变量,指针,数组等等。
二.结构体的初始化:
struct book m1={"a b","3.3 4.4"};
或直接全为零:
struct book m1={0};
当然还有 结构体的初始化器。
三.结构体数组:
创建结构体数组时,其中信息被储存在栈中(stack),如果出现错误,可能栈太小或溢出,所以可以把栈设置的大或创建静态或外部数组;
四.结构体指针:
1.
struct guy *him; 声明了一个结构体指针,但是并没有创建一个新的类型,现在mn是一个guy类型的结构体,可以把结构体指针指向它。
him=&mn;
a是 结构 mn中 一个变量时,可以这样访问。
mn.a==him->a==(*him).a //him=&mn;
2.向函数传递结构体信息(即参数)
这里的内容是我掌握最模糊的之一。
传成员:
#include<stdio.h>struct fund{double save;double savefund;};double sum(double , double);int main(){double m=0;struct fund stan ={4.4,5.5};printf("%lf\n,%lf\n",stan.save,stan.savefund);m=sum(stan.save,stan.savefund);//这只是传了形参。如果修改函数中的值,必须传成员地址:sun(&stan.save,&stan.savefund);或用指针。printf("%lf\n",m);return 0;}double sum(double x,double y) {x+y;return (x+y);}
传结构地址:
#include<stdio.h>#define FUNDLEN 50struct funds{char bank[FUNDLEN];double bankfund;char save[FUNDLEN];double savefund;};double sum(const struct funds *);// 这里表示 参数是一个指针(你需要向里面传一个funds类型 的指针变量)int main(){struct funds stan={"Garlic-Melon Bank",4032.27,"Lucky's Saving and Loan",8543.94};printf("%.2f\n",sum(&stan));return 0;}/*sum()函数使用funds类型的指针作为它的参数,是地址传递,其中const 使函数不能改变指针所指向值的内容。*//* 注意的是 必须用&来获取地址 */double sum(const struct funds * money ){return (money->bankfund + money->savefund);}
再用2到3天空闲时间复习或重学习指针,指针可以说是我的一个头疼点,加油。
如果对指针理解不够 就多学几天。
希望自己每天都写写博客,去促进自己学习,能够督促自己,每一天都能进步一点,通过自己的努力可以改变一点是一点。
真的,希望自己四年大学不要等吃混死。
阅读全文
0 0
- 复习c结构体
- C语言结构体复习
- C语言结构体复习
- C语言复习之结构体基础知识
- C语言复习之结构体基础知识
- C语言复习 -- 自引用结构体
- C语言复习之结构体基础知识
- C语言复习之结构体基础知识
- c语言结构体复习笔记
- C/C++复习(5):结构体
- 复习关于C的结构体struct
- C语言复习之结构体和指针
- C/C++复习:学生信息的输出(结构体)
- C/C++复习:小数计算(结构体)
- C/C++复习:成绩统计(结构体)
- C/C++复习:点坐标(结构体)
- C/C++复习:高于均分的学生(结构体)
- C/C++复习:学生信息排序(结构体)
- 小白笔记---------------------------------leetcode(48. Rotate Image )
- Pascal运算符和优先级
- java常用数据结构list底层源码详解
- node crypto decipher data
- An impassioned circulation of affection CodeForces
- 复习c结构体
- 修理牧场-优先级队列
- 求单链表倒数第K个数(java)
- 一位资深程序员大牛给予Java初学者的学习路线建议
- 第三节 java 自增,自减,三元运算,短路运算
- 7.4用穷举法的调用函数
- CCF CSP 201509-1 数列分段
- 6.20
- 如何关闭windows10自动更新windows update