- 1、本文档共15页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
预编译语句1、预编译语句:特征是一般跟#连用的C语言语句作用:预编译语句存在的意义就是编译(器)设置,对源程序编译发生作用的代码。a)#define:常量定义,内部原理是编译器强制替换。使常量书写方便,使程序代码容易维护b)typedef是专用于对类型重新定义:书写上#define定义的类型名在前,typedef定义的类型名在后而且加分号。c)内部原理不是强制替换,而是定义一个类型的别名。最常用于难于书写的类型定义成容易书写的类型名。2、#include包含语句:代表直接在VC的系统包含目录中查找该头文件。代表首先在用户目录下查找,如果没有再去系统目录查找。3、条件编译语句#ifdef(#ifndef)#else#esleif#enda)#ifdefxxx是#ifdefinde(xxx)的缩写b)#ifndefxxx是#if!define(xxx)的缩写4、#define宏函数:带参数的define语句优点:比真正的函数运行速度快缺点:编译速度稍微慢些,编译出执行文件尺寸大一些
枚举与常量定义constant英文的意思是“常数”.在C语言中加上const的变量叫做常变量,也叫只读变量;1、常变量(const):只读变量。a)写错误:errorC2166:l-valuespecifiesconstobjectb)必须初始化,因为只能在初始化时给常变量赋值。errorC2734:i:constobjectmustbeinitializedc)在编译时,优化过的编译器不从内存读取常变量的数值。constinti=100;2、常量定义方式:包括#define,const,enuma)enum是现在较流行的常数定义方式。b)enum的定义语法和struct及其相似,以逗号间隔c)如果未指定从0开始,其他依次加1。d)如果指定了从指定的数开始,其他未指定的依次加1e)使用枚举定义系列常量的优点是可以自动无重复例如:大量通讯协议中,协议号的定义(#define可能造成重复)3、枚举变量:如果不需要定义枚举变量时,定义枚举时不用指定枚举名字(例如:WEEKDAY)a)枚举类型变量的大小与整型变量相同,与列表成员个数无关。b)枚举变量只限制指定枚举列表中的常量赋值,而不可以用整数赋值。c)做函数参数时可以排除异常数据进入该函数。
常量指针与指针常量1、常量指针:指向常变量的指针变量a)格式是const在指针定义最前面,功能是防止修改指针向内存的数值。例如:取i的地址(i)类型就是constint*;例如:constchar*p=“abcd”;b)常量指针的特点:禁止赋值操作,允许便宜操作,允许读取操作例如:p=p+1;//正确,允许指向变动charc=*p;//正确,只读p[0]=‘x’;//错误,不允许修改字符串常量原本的类型就是指针常量。c)因为*p和p[0]的类型是类型是常变量类型,所以不能做赋值操作。2、指针常量:指向固定的位置的指针变量,格式是const在指针变量前星号后,a)指针常量的特点:允许赋值操作,禁止偏移操作,允许读取操作例如:intI=100;int*constp=I;p=p+1;//错误intc=p[0];//正确*p=300;//正确p[0]=300;//正确b)*p和p[0]的类型是变量类型(例如:int类型,而不是constint类型)c)无论是指针常量还是常指针,const关键字是编译时禁止修改的错误。
const关键字1、指向字符串的指针和数组:a)指向字符串常量区,是只读区域b)char*p=abcd12;//sizeof=4,任何指针*p=x;//运行错误c)charp1[]=abcd12;//复制p1是在栈(或者全局区)内d)p1[1]=x;//正确补充:数组类似于不可偏移的指针(常量指针)例如:inta[100];类似于int*constp=a;
位结构体1、位结构体:也叫位域结构体等等。a)位结构体:每个成员都可以用来做定义单位,可以小于1个字节或者半个字节。普通变量没有小于1BYTE的单位。最小的类型char和bool都是1byte.b)定义:struct结构体名{成员类型成员变量名:位段(常量)成员类型成员变量名:位段(常量)};例如:使用4个字节表示年月日c)位结构体定义时尽量所有成员使用相同类型。d)成员类型必须满足最大成员的位数,例如:char只能定义8位以内位段。附录:structSSTest{//结构体不能这样初始化 inti=10; intj=10;};//以上错误结构体只有在定义对象时才涉及初始化。structSSTest{ inti;//结构体
文档评论(0)