- 1、本文档共14页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
C语言笔记
一.基本数据类型
1.数据类型可理解为固定内存大小的别名,数据类型是创建变量的模子。
2.变量是一段实际存储内存空间的别名,程序中通过变量来申请内存。
3.auto关键字是在栈中分配空间,在代码块内部声明的变量缺省储存类型是自动的auto,离开代码块,这些自动变量便自行销毁。即c语言中局部变量的默认属性,默认所有局部变量都是auto的。
4.static关键字一个功能:当它用于代码时内部时,指明变量的“静态”属性,修饰的局部变量存储在程序静态区中。具有静态存储类型的变量在整个程序执行的过程中一直存在,函数的形参不能为静态的。static的另一个功能:用于函数定义,或用于代码块之外的变量声明,修改标识符的链接属性,从external(外部)改为internal(内部),用这种方式声明的函数或变量只能在声明它们的源文件中访问。例:static int b;变量b就是源文件私有,不能在其他文件中用extern关键字引用。
5.register关键字指明变量存储于寄存器中,变量长度必须是CPU寄存器可以接受的值,不能用运算符获取register变量的地址。
6.extern关键字用于声明外部定义(其它文件,函数)的变量和函数,extern为标识符指定external链接属性,可以访问在其他任何位置定义的这个整体。
7.const修饰的变量是只读的,其本质还是变量它的值不会被修改。
const int* p; //p可变 ,p指向的内容不可变
intconst* p; //p可变 ,p指向的内容不可变
int* const p; //p不可变,p指向的内容可变
const int* const p; //p和p指向的内容都不可变
口诀:左数右指
当const出现在*号左边时指针指向的数据为常量
当const出现在*后右边时指针本身为常量
8.void不存在void变量,c语言没有定义void究竟是多大内存的别名;void *指针作为左值用于“接收”任意类型的指针,作为右值赋值给其他指针时需要强制转化为类型指针。
9.sizeof是编译器的内置指示符,不是函数,用于“计算”相应实体所占的内存。
例sizeof a;是合法语句,得到a的内存。
10.volatile可理解为“编译器警告字”用于告诉编译器必须每次内存中取变量值。
11.union(联合)联合声明和结构体声明类似,但它的行为方式与结构不同,联合的所有成员引用的是内存中的相同位置,在不同时刻把不同的东西存储到同一个位置。联合的各个成员具有不同的长度,联合的长度就是它最长成员的长度。
12.enum是一种自定义类型,默认常量在前一个值的基础上依次加1,enum类型的变量只能取定义时的离散值。第一个值不指定大小的话,默认值为0
13.typedef用于给一个已经存在的数据类型重命名,并没有产生新的类型,重定义类型不能进行unsigned和signed扩展。
14.全局变量是在静态区分配空间
二.符号技巧
(一).注释符号
1.编译器会在编译过程删除注释,但不是简单的删除而是用空格代替
2.编译器认为双引号括起来内容都是字符串,双斜杠也不例外
3./*….*/型注释不能被嵌套
(二).接续符和转义符
接续符(\)的使用:
1.编译器会将反斜杠剔除,跟在反斜杠后面的字符自动解到前一行
2.在接续单词时,反斜杠之后不能有空格,反斜杠的下一行之前也不能有空格
3.接续符适合在定义宏代码块时使用
转义符(\)主要用于表示无回显字符,也可以表示常规字符
(三).单引号和双引号
1.单引号用来表示字符常量,本质上单引号括起来的一个字符代表整数
2.双引号用来表示字符串常量,本质上双引号括起来的字符代表一个指针。
(四).逻辑运算符
1.||从左向右开始计算,当遇到为真的条件时停止计算,整个表达式为真;所有条件为假时表达式才为假。
2.从左向右开始计算,当遇到为假的条件时停止计算,整个表达式为假;所有条件为真时表达式才为真。
3.逻辑符“!”只认0,只知道见0就返回1,因此当其作用的值不是0时,其结果为0.
4.三目运算符(a?b:c)可以作为逻辑运算符的载体
规则:当a的值为真时,返回b的值;否则返回c的值
(五).位运算符
1.左移运算符()将运算数的二进制位左移
?规则:高位丢弃,低位补0
右移运算符把运算数的二进制位右移
?规则:高位补符号位,低位丢弃
防错准则:避免位运算符,逻辑运算符和数学运算符同时出现在一个表达式中当位运算符,逻辑运算符和数学运算符需要同时参与运算时,尽量使用括号()来表达计算次序
小技巧:左移n位相当于乘以2的n次方,但效率比数学运算符高
右移n位相当于除以2的n次方,但效率比数学运算符高
2.交换
您可能关注的文档
最近下载
- 外教社新世纪高等院校英语专业本科生系列(修订版):综合教程(第3版) 第3册 PPT课件unit12.pptx
- 2024年山东省电力交易员竞赛选拔考试参考题库(含答案).docx
- 伍德里奇《计量经济学导论-现代观点》(第6版)课后题答案.docx
- arcgis属性表操作(中高级).ppt
- Arcgis属性表操作讲解.pptx VIP
- 道路危险货物运输从业人员培训ppt课件2016第二篇管理知识篇.ppt
- 《红楼梦》前20回练习题公开课.doc VIP
- 部编版五年级语文下册第二单元主题阅读(答题技巧 精选阅读)(含答案).docx VIP
- 部编版五年级语文下册 第二单元 主题阅读——古典名著【含答案】.docx VIP
- 教导主任培训课件.pptx VIP
文档评论(0)