首页 > 编程语言 > 详细

C语言小总结

时间:2017-01-25 22:58:25      阅读:230      评论:0      收藏:0      [点我收藏+]

  1.函数

  有时程序中要多次实现某一功能,就需要多次重复编写实现此功能的代码,这使程序不精练。因此需要模块化程序设计的思想。

  函数的返回值要匹配,若函数有返回值可以不接受,但是函数没有返回值不能接受。

  传参时实参要与形参匹配。

  函数必须先定义才能使用。

  若函数申明了之后没有实现,编译过程中不会出现错误,但链接运行时会出错。

  形参与实参地址不同当值传递时,函数形参发生改变,但实参没有改变。

  2.数组

  三值合一:

  ar访问的是数组名的值,而这个值恰好是首元素的地址。

  &ar[0]对数组首元素求地址

  &ar是求整个数组空间的地址(恰好是首元素的地址)

  多维数组都可以转化为一维数组。

  二维数组初始化时行可以缺省,但列不可以缺省。

  访问地址得到值只对字符数组成立,对其他数组的访问都只能得到地址

  注意\0和字符数组越界的问题。

  数组的大小用sizeof,数组的实际大小用strlen

  双引号存的是字符串(系统默认加\0),单引号存单个字符

  数组访问的底层是指针形式的访问

  数组名作为形参退化为指针(只针对一维数组)

  3.字符串

  字符指针存放的是地址,字符串常量保存在静态常量区值不能改变,字符数组存放的是若干个元素,字符是变量,可以进行赋值改变

  指针可以对指针赋值,但数组名不可以对数组名赋值。

  4.数组指针与指针数组  函数指针和指针函数

  (*ar)[10]  //数组指针,指向数组的指针,强调的是指针

  *ar[10]    //指针数组,存储指针的数组,强调的是数组

  (*ar)()     //函数指针,指向函数的指针,强调的是指针

  *ar()       //指针函数,返回指针的函数,强调的是函数

  5.C之动态内存分配与释放

  全局变量是分配在内存中的静态存储区的,非静态的局部变量是分配在内存中的动态存储区称为栈。

  动态内存分配区域称为堆区,存放临时数据,这些数据不必在程序的声明部分定义,也不必等到函数结束后才释放,而是根据需要随时开辟随时释放。由于未在声明部分定义他们的变量或数组,因此不能通过变量名或者数组名去引用这些数据,只能通过指针来引用。

  在编程时,大概把内存分为三个区域:

  栈区:局部变量,在程序里面定义的

  堆区:malloc calloc realloc函数开辟的,必须手动释放,否则会造成内存泄漏

  静态常量区:静态变量,全局变量 只要主程序结束,生成在其中的变量就撤销

  不可以定义void类型的变量,但可以定义void 类型的指针,void类型的指针可以接收一切类型的指针,想要把void型指针向真实类型转换,则必须进行强制类型转换

  6.自定义类型

  C之自定义类型:struct结构体,union联合体,enum枚举

  7。指针

  指针的本质就是相应类型的地址

C语言小总结

原文:http://www.cnblogs.com/qingjiaowoxiaoxioashou/p/6350201.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!