[计算机]软件研究室培训c语言

[计算机]软件研究室培训c语言

ID:40004564

大小:414.50 KB

页数:40页

时间:2019-07-17

[计算机]软件研究室培训c语言_第1页
[计算机]软件研究室培训c语言_第2页
[计算机]软件研究室培训c语言_第3页
[计算机]软件研究室培训c语言_第4页
[计算机]软件研究室培训c语言_第5页
资源描述:

《[计算机]软件研究室培训c语言》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、C语言主要内容一、学习编程语言的一些建议二、指针三、预处理器四、结构、联合和枚举五、sizeof六、参考书籍和资料(1)多动手学习编程唯一方法是编写调试程序。看再多的书,效果也比不上设计调试一个简单程序。(2)养成良好的编程习惯养成好习惯很难。所以良好的编程习惯要从一开始培养。(3)注意细节不应漏过任何一个技术细节。只有细节的日积月累,才能有技术上的提高。(4)了解开发环境在学习编程语言的同时,也需要了解编程语言的开发、使用环境。如硬件平台(51、MSP430、PC)、操作系统(uCOS、Linux、DOS)、集成开发环境

2、(KeilC,BorlandC)等。(5)多看书、勤思考很多国外的经典书籍是由拥有几十年经验的质深程序员编写的。这些书里最重要的是融入了作者多年的编程经验。多看书,再结合自身平时的积累,不断思考总结是提高编程技术最有效的办法。第一章学习编程语言的一些建议第二章指针2.1指针的基本概念2.1.1指针是什么?指针是一个变量,它的值是另外一个变量的地址。例12.1.2指针的类型指针所存储的那个变量类型,就称为指针的类型。例2有三个不同类型的指针:intI[2],*pI=&I[0];右边的三个运算有何不同?pI++;charC[2

3、],*pC=&C[0];pC++;floatF[2],*pF=&F[0];pF++;0x00C7指针变量int*p0x00C7变量inta上面例中的两个0x00C7有什么区别?2.1.3指针的三个要素指针指向的地址(指针的内容);指针指向的地址上的内容;指针本身的地址。例3:intA,*pA,**ppA;pA=&A;ppA=&pA;在复杂的指针都可以通过下表来分析:&ppAppA*ppA**ppA&pApA*pA&AA第二章指针第二章指针2.1.4指针的大小(指针变量占用的内存空间)与所用的CPU寻址空间大小和类型有关,而

4、与指针类型无关。8位CPU的指针长度为1~2个字节(51单片机的情况较为复杂,是1~3个字节);16位CPU的指针长度为2个字节(如MSP430);32位CPU的指针长度为4个字节(如Intel80386)。上面所述是通常情况,并不是全部符合。第二章指针2.1.5指针的初始化变量在没有赋值之前,其值不定的。对于指针变量,可以表述为:指向不明。程序访问了一个没有初始化的指针:int*p;p的内存是随机的一个数,比如:0x3FF0073D程序随即访问内存地址:0x3FF0073D0x3FF0073D是哪里的内存?说不定正好是W

5、indows老大要用的内存,你竟敢访问!Windows一生气,蓝屏。一个指向不明的指针,是非常危险的!!!因此,指针在使用前一定要初始化;在使用前一定要确定指针是非空的!!!第二章指针2.2数组与指针对于数组的两个概念:1.C语言中只有一维数组,数组的大小必须在编译时作为一个常数确定下来。数组的元素可以是任何类型,甚至是数组,由此可以方便地得到多维数组;2.数组的任何操作,即使采用数组下标进行的运算都等于对应的指针运算。可以用指针行为替代数组下标的运算。例4:inta[4],*p;p=a;//等价于p=&a[0];*(a+

6、2)=0;//等价于a[2]=0;p[2]=0;//等价于a[2]=0;但数组不同于指针:数组名a是指向数组起始位置的“常量”。因此,不能对数组名进行赋值操作。例5:inta[4],*p;p=a;//正确a=p;//错误p++;//正确a++;//错误第二章指针第二章指针2.3空指针与通用指针(1).空指针是个特殊指针值,也是唯一对任何指针类型都合法的指针值。一个指针变量具有空指针值,表示它当时没指向有意义的东西,处于闲置状态。空指针值用0表示,这个值绝不会是任何程序对象的地址。给一个指针赋值0就表示要它不指向任何有意义的

7、东西。为了提高程序的可读性,标准库定义了一个与0等价的符号常量NULL,程序里可以写:p=NULL;//注意不要与空字符NUL混淆,NUL等价于‘’或者:p=0;注意:在编程时,应该将处于闲置的指针赋为空指针;在调用指针前一定要判断是否为空指针,只有在非空情况下才能调用。(2).通用指针通用指针可以指向任何类型的变量。通用指针的类型用(void*)表示,因此也称为void指针。下面的第三行定义了两个通用指针:intn,*p;double*q;void*gp1,*gp2;可以直接把任何变量的地址赋给通用指针。例如,有了上

8、面定义,下面赋值是合法的:gp1=(void*)&n;可以把通用指针的值赋给普通的指针。如果被赋值指针与通用指针所指变量的类型不符,需要写强制转换:p=(int*)gp1;第二章指针第二章指针2.4函数指针2.4.1函数指针的定义函数指针即指向函数地址的指针。利用该指针可以知道函数在内存中的位置。因此也

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。