C语言的预处理,主要涉及到的预处理命令有:宏定义、文件包含、条件编译。预编译只要是#include <文件名>(这个是文件包含)开头的就是源代码在进行编译之前就进行预编译处理,这个主要用来调用标准库函数,如:string,math,stdio这几个是比较常用的几个函数集。宏定义,#define 标识符 要替代的字符串或者表达式,标识符一般用大写字母表示,这样方便和普通变量(小写字母)区分开,宏定义只是进行简单的字符串替换。条件编译,就是根据需要编译源代码中部分代码块,从而减少最后可执行文件的大小,格式如下:
#ifdef 标识符
程序段
#else
程序段
#endif
指针是C语言的一个特色,对他比较了解的人能够通过指针编写出很多高效的程序,但是对他理解不是很透彻的程序猿就要小心了,用的不好,开发出来的程序会导致系统崩溃,所以指针要慎用。指针存储的是一个内存地址,在定义一个指针时,如,int *a——定义了一个指向整形类型的指针,在引用他是,需要给他赋初值,不然指针存储的内存地址就是随机的。指针可以指向所有的基本变量,也可以指向数组、函数、还有指针自己。指向数组,存储的是数组的第一个元素的首地址(一维数组),指向多维数组的首行第一个元素的地址,指向数组的指针可以通过加减来改变指针所指向的数组元素;指向函数的入口,但是不能通过指针的加减,来控制执行函数的下一条语句,在函数中没有这样的概念;指向指针的指针,存储的还是地址,但是是指向指针变量的地址,int **p;指针存放的是地址,所有不能将一个常量赋值给他;但是可以将一个字符串常量赋值给他,因为字符常量在内存的表示形式以数组的形式存储的,指针保存的是该字符串的首地址,int *a="hello";这个表示是正确的。
int *a,*b;//定义两个指向整形变量的指针
a=b;//将b指针的地址赋值给a指针,这个时候a指向的是b指正所指向的变量
*a=*b;//使得a指向的变量内容变成*b
本文出自 “快意江湖” 博客,请务必保留此出处http://3768400.blog.51cto.com/3758400/1370901