C语言笔记剖析.docx

  1. 1、本文档共14页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 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.交换

文档评论(0)

***** + 关注
实名认证
内容提供者

我是自由职业者,从事文档的创作工作。

1亿VIP精品文档

相关文档