函数基础和结构体的总结

在C语言中,函数意味着功能模块。一个典型的C语言程序,就是由一个个的功能模块拼接而成的整体。也因为如此,C语言被称为模块化语言。

对于函数的使用者,可以简单的将函数理解为黑箱子,使用者只管按照规定给黑箱一些输入,就会得到一些输出,而不必要理会黑箱子里面的运行细节,只需要知道黑箱子的规则即可。

对于函数的设计者,最重要的工作是封装,封装意味着对外提供服务并隐藏细节。对于一个封装良好的函数而言,其对外提供服务的接口应当是简洁的,内部功能应当是明确的。函数封装是将所设计的函数进行打包放进一个独立的.c文件中,如果想使用,主函数直接调用即可。

函数的调用是在主函数中输入关键字,进入被调入函数中进行运行,运行结束后再返回主函数。

内存布局:

在c语言程序中,想要正常运行需要内存资源来存放变量常量代码段等等,其中内存分为虚拟内存和物理内存,虚拟内存的分布图如下:

栈的特点:

栈的大小只有8M,不能存放太大的数据,否则会导致溢出

栈的内存由系统分配,我们无法干预

栈的生命周期短,在该函数运行完就被系统自动清空

堆的特点:

堆的内存大小和物理内存相关,比栈的内存大的多

栈的内存可以由使用者自由分配,自由释放

栈的生命周期长,除非使用者主动释放,否则直到程序结束才会释放

静态数据:

 若定义时未初始化,则系统会将所有的静态数据自动初始化为0
 静态数据初始化语句,只会执行一遍。
 静态数据从程序开始运行时便已存在,直到程序退出时才释放。


static:

 static修饰局部变量:使之由栈内存临时数据,变为静态数据
 static修饰全局变量:使之由个文件可见的静态数据,变成为本文件可见的静态数据
 static修饰的函数:使之由各文件可见的函数,变成为本文件可见的静态函数。

结构体:

结构体是将不同的数据类型组合起来,形成自定义的变量类型。结构体和其他变量一样需要初始化、赋值等,但是也有一些不同之处。

初始化:

1、普通初始化

2、指定成员初始化

普通初始化需要严格按照顺序进行初始化,而指定成员初始化可以对顺序进行改变,还可以不全部初始化,只初始化自己需要的部分。

结构体成员引用

我们可以把结构体看作一个集合,里面的每一个成员都是一个子集,他们都可以单独引用,使用成员引用符就可以对他们单独引用


 

  

  • 5
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值