Chinaunix首页 | 论坛 | 博客
  • 博客访问: 103276
  • 博文数量: 31
  • 博客积分: 115
  • 博客等级: 民兵
  • 技术积分: 165
  • 用 户 组: 普通用户
  • 注册时间: 2011-10-19 16:02
文章分类
文章存档

2013年(1)

2012年(9)

2011年(21)

分类:

2011-12-15 23:24:03

原文地址:C语言高级(6) 作者:余家十三少

函数:
思想:模块化,将功能不同的代码封装在不同的函数中。
返回值,函数功能,参数
函数在调用前,需要先声明。若函数的定义在主函数之前,则无需显式声明;
函数指针:用于保存函数的地址的指针变量,在定义该指针变量的时候需要定义该指针指向函数的返回值,形参的类型如:定义pf为一个指针,该指针指向一个函数,该函数的返回值为int,形参为int int~
  1. int (*pf)(int, int);
 
 
递归:
函数直接或者间接的调用自己,函数只是一段代码,函数的调用只是跳转到该地址执行该段代码,在计算机看来,函数调用自己和调用别的函数没有任何区别。
递归应该是有限的,递归的系统栈开销是非常大的,但是在逻辑和思想上显得和严谨。故递归不是经常使用。
 
结构体:
struct st{
 
};结构体是一种构造类型的结构,在同种类型的结构体之间,是可以相互赋值的,不可以整体赋值,但是可以像数组一样在初始化的时候可以一次赋值。
结构体所占用内存的长度,是需要考虑字节对齐的,一般的为四字节对齐。
结构体是不可以直接比较大小的,若需要比较结构体的大小,需要调用系统函数进行比较
  1. #include <string.h>
  2. int memcmp(const void *s1, const void s2);
在s1>s2时候,函数返回1,在s1==s2时,函数返回0,在s1
 
共用体:
union ui{
 
};共用体也是一种构造类型的结构,其中所有的元素均占用同一内存,占用类存的长度取其中最长的元素的大小,在改变其他非最长元素的值时,之后的内存空间是不变化的(系统不会对该内存进行任何操作)
阅读(986) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~