ImageVerifierCode 换一换
格式:DOCX , 页数:23 ,大小:158.99KB ,
资源ID:5918613      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/5918613.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(C基础班讲义v10.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

C基础班讲义v10.docx

1、C基础班讲义v10C基础班讲义目 录1 第一个c语言的hello world 71.1 include头文件包含 71.2 main函数 71.3 注释 71.4 括号和代码块 71.5 声明 71.6 C语言自定义名字的要求 71.7 return语句 82 C语言的编译 82.1 编译过程 82.2 gcc编译选项 82.3 printf执行原理 92.4 CPU32位64位简介 103 C语言中的数据类型 113.1 常量 113.1.1 #define 113.1.2 const 123.2 字符串常量 123.3 位,字节,字 123.3.1 位 123.3.2 二进制 123.3.

2、3 十进制 123.3.4 八进制 133.3.5 十六进制 133.3.6 字节 133.4 sizeof关键字 133.5 十进制,二进制,八进制,十六进制 143.6 int类型 143.6.1 int常量,变量 143.6.2 printf输出int值 163.6.3 printf输出八进制和十六进制 163.6.4 short,long,long long,unsigned int 163.6.5 整数溢出 163.7 char类型 173.7.1 char常量,变量 173.7.2 printf输出char 173.7.3 不可打印char转义符 173.7.4 char和unsi

3、gned char 183.8 浮点float,double,long double类型 183.8.1 浮点常量,变量 183.8.2 printf输出浮点数 183.9 类型限定 183.9.1 const 183.9.2 volatile 183.9.3 register 194 字符串格式化输出和输入 194.1 字符串在计算机内部的存储方式 194.2 printf函数,putchar函数 194.3 scanf函数与getchar函数 205 运算符表达式和语句 215.1 基本运算符 215.1.1 = 215.1.2 + 215.1.3 215.1.4 * 215.1.5 21

4、5.1.6 % 215.1.7 += 215.1.8 -= 215.1.9 *= 225.1.10 = 225.1.11 %= 225.1.12 + 225.1.13 - 225.1.14 逗号运算符 225.1.15 运算符优先级 225.2 复合语句 235.3 类型转化 236 条件分支语句 236.1 关系运算符 236.1.1 236.1.2 236.1.4 = 246.1.5 = 246.1.6 != 246.2 关系运算符优先级 246.3 逻辑运算符 246.3.1 & 246.3.2 | 256.3.3 ! 256.4 if 266.5 if else 276.6 if el

5、se if 276.7 switch与break,default 276.8 条件运算符? 276.9 goto语句与标号 277 循环语句 277.1 while 277.2 continue 277.3 break 287.4 do while 287.5 for 287.6 循环嵌套 288 整数在计算机内部的存储方式 288.1 原码 288.2 反码 298.3 补码 291 第一个c语言的hello world1.1 include头文件包含头文件包含,写法#include ,1.2 main函数这个就是C语言程序的入口,所有的C程序都是从main开始执行,一个C的源程序必须有一个

6、main函数,也只能有一个main函数1.3 注释/注释一行/* */代表块注释,可以注释多行代码1.4 括号和代码块代表一个代码单元1.5 声明C语言规定,所有的变量和函数必须先声明,然后才能使用.1.6 C语言自定义名字的要求可以使用大小写字母,下划线,数字,但第一个字母必须是字母或者下划线字母区分大小写变量名最好用英文,而且要有所含义,通过变量的名称就能猜测变量的意思。1.7 return语句在C语言当中任何函数遇到return代表这个函数停止,当main函数遇到return,代表整个程序退出return代表函数的返回值,如果返回类型是void,可以直接写return,而不需要返回任何值

7、2 C语言的编译2.1 编译过程2.2 gcc编译选项-o代表指定输出文件名-E代表预编译预编译处理include的本质就是简单的将include中的文件替换到c文件中如果include包含的头文件在系统目录下,那么就用#include ,如果包含的文件在当前目录下,那么用#inlclude “”-S代表汇编-c代表编译2.3 printf执行原理2.4 CPU32位64位简介一个字节是8个bit,一个字是两个字节,整型4个字节8位寄存器AL 00000000 25616位寄存器AX AL AH 00000000000000001111111111111111 四个通用寄存器AXBXCXDX3

8、2位寄存器EAX 0000000000000000000000000000000000000000000000 111111*1111111111111111111EBXECXEDX64位寄存器REAXREBXRECXREDX3 C语言中的数据类型3.1 常量常量就是在程序中不可变化的量,常量是不可被赋值的。3.1.1 #define#define的本质就是简单的文本替换通过#define定义的常量,在C语言里面一般叫宏定义3.1.2 constconst定义一个变量,但是这个变量的值只能在定义的时候赋予,之后就不可以修改。对于const类型的变量,一定要在定义的时候给变量赋初值,不然定义之后

9、就无法赋值了。3.2 字符串常量在C语言当中“”引用的字符串都是字符串常量,常量一旦定义也是不可以被修改的。3.3 位,字节,字3.3.1 位计算机内部都是二进制的,一个二进制的位,就叫做一个bit,就是一位3.3.2 二进制逢二加1,在二进制表达数的时候是只有0和1,而没有2这个数的二进制最大表示的数,就是2几次幂对于8位的CPU来讲,最大表达的数是2的8次幂3.3.3 十进制逢10加1,只有从0 到9的数,没有10这个数,3.3.4 八进制从0到7,逢8加1在C语言中八进制是数字前面加03.3.5 十六进制0,1,2,3,4,5,6,7,8,9,a,b,c,d,e,f,10逢16加1,在C

10、语言当中表达一个十六进制数的方式,数字前面加0x前缀3.3.6 字节8个bit为代表一个字节3.4 sizeof关键字sizeof与size_t类型sizeof是计算数据在内存当中占多大空间的,单位字节由于sizeof永远返回的是一个大于等于0的整数,所以如果用int来表示sizeof的返回值就不合适,size_t一般就是一个无符号的整数.3.5 十进制,二进制,八进制,十六进制3.6 int类型3.6.1 int常量,变量一个int型数据占据4个字节的内存大小,在16位操作系统下,int是2个字节,在32和64位操作系统下,int是4个字节。int a;/代表在内存当中开辟一个4个字节大小的

11、空间a = 10;/代表4个字节的空间内容是常量10小端对齐和大端对齐高地址放高位,底地址放低位-小端对齐高地址放低位,底地址放高位大端对齐对于大型unix CPU都是按照大端对齐方式处理int,但对于x86构架CPU,还有ARM,是小端对齐的3.6.2 printf输出int值int a = 0x100;/十六进制printf(“%d”,a);%d的意思是按照10进制打印一个整数%x%X,输出十六进制的时候是用大写的ABCDEF还是小写的abcdef,3.6.3 printf输出八进制和十六进制%o3.6.4 short,long,long long,unsigned int 在32位系统下

12、:short = 2个字节long和int一样,是4字节long long 是8个字节在64位操作系统下int,4个字节long 在大多数64位系统下8个字节unsigned int/无符号整数unsigned long/无符号的长整数unsigned short/无符号短整数9l,9L,9ll,9LL,9u,9ull,9ULL3.6.5 整数溢出当把一个大的整数赋值给小的整数,叫溢出。int I = 0x12345678short a = I;当一个int赋值给short,会将高位抛弃,3.7 char类型3.7.1 char常量,变量char是字符型,代表一个字节的内存char在内存当中,

13、有符号最大7f,无符号,最大ffunsigned charchar的本质就是一个字节,一个BYTE3.7.2 printf输出char%c3.7.3 不可打印char转义符a,警报b退格n换行r回车t制表符斜杠单引号”双引号?问号3.7.4 char和unsigned charchar取值范围为-128到127unsigned char为0-2553.8 浮点float,double,long double类型3.8.1 浮点常量,变量float f = 2.5;double f1 = 3.14159263.8.2 printf输出浮点数%f,%Lf3.9 类型限定3.9.1 constcon

14、st限定一个变量的值不可以改变3.9.2 volatile告诉编译器不要自作聪明的给我优化代码,把我的变量优化的寄存器里面计算,只要是volatile类型变量,每一步都需要从内存当中读取。3.9.3 registerregister告诉编译器,这个变量只是用寄存器就好,提高效率,所以说register只是一个建议,而不是必须的结果。4 字符串格式化输出和输入4.1 字符串在计算机内部的存储方式字符串是内存中一段连续的char空间,以0结尾字符串就是0结尾的连续char的内存4.2 printf函数,putchar函数printf格式字符字符对应数据类型含义d int接受整数值并将它表示为有符号

15、的十进制整数hdShort int短整数huUnsigned short int无符号短整数ounsigned int无符号8进制整数uunsigned int无符号10进制整数x / Xunsigned int无符号16进制整数,x对应的是abcdef,X对应的是ABCDEFffloat或double单精度浮点数或双精度浮点数e / Edouble科学计数法表示的数,此处e的大小写代表在输出时用的“e”的大小写cchar字符型。可以把输入的数字按照ASCII码相应转换为对应的字符s / Schar * / wchar_t *字符串。输出字符串中的字符直至字符串中的空字符(字符串以0结尾,这个

16、0即空字符)pvoid *以16进制形式输出指针%输出一个百分号printf附加格式字符含义l附加在d,u,x,o前面,表示长整数-左对齐m(代表一个整数)数据最小宽度0将输出的前面补上0直到占满指定列宽为止不可以搭配使用-N(代表一个整数)宽度至少为n位不够以空格填充printf是打印一个字符串putchar是打印一个字符4.3 scanf函数与getchar函数5 运算符表达式和语句5.1 基本运算符5.1.1 =数据对象:泛指数据在内存的存储区域左值:表示可以被更改的数据对象右值:能赋给左值的量5.1.2 +5.1.3 5.1.4 *5.1.5 /5.1.6 %取模,取余数5.1.7 +

17、=int a = 10;a = a + 5;可以简写成a += 5;5.1.8 -=a = a 5;a -= 5;5.1.9 *=a = a * 5;a *= 5;5.1.10 /=5.1.11 %=5.1.12 +5.1.13 -5.1.14 逗号运算符int I = 6 + 5, 3 + 2逗号表达式先求逗号左边的值,然后求右边的值,整个语句的值是逗号右边的值。5.1.15 运算符优先级优先级运算符结合性1+(后缀),-(后缀),()(调用函数),(语句块),.,-从左到右2+(前缀),-(前缀),+(前缀),-(前缀),!(前缀),(前缀),sizeof,*(取指针值),&(取地址),(

18、type)(类型转化)从右到左3*, /, %从左到右4+,-从左到右5从左到右6 =从左到右7= !=从左到右8&从左到右9从左到右10|从左到右11&从左到右12|从左到右13?从右到左14=,*=,%=,+=,-=,=,&=,|=,=从右到左15,(逗号运算符)从左到右5.2 复合语句代码块5.3 类型转化 double d = 10.2; int a = d;/隐式转换 int a1 = 3; int a2 = 2; double mid = (double)a1 / (double)a2;/显示的强转 printf(mid = %fn, mid);6 条件分支语句6.1 关系运算符在

19、C语言中0代表假,非0代表真,在计算机程序判断是根据一个条件返回是真还是假来做不同的操作。6.1.1 6.1.2 6.1.4 =6.1.5 =一个=号在C语言里面是赋值的,不是比较的,但是很多初学者爱犯一个严重的错误,就是用=号来比较两个数是否相等6.1.6 !=!=6.2 关系运算符优先级前四种相同,后两种相同,前四种高于后两种优先级6.3 逻辑运算符6.3.1 &逻辑与6.3.2 |逻辑或6.3.3 !逻辑非6.4 if6.5 if else两路分支if语句,只可能执行一路,不可能同时执行两路,也不可能两路都没有被执行6.6 if else ifif else if 这种于语法可以实现多路

20、的分支,但只有一路被执行。else永远是和最近的一条if语句配对。6.7 switch与break,defaultswitch是为多重选择准备的,遇到break语句,switch就终端执行6.8 条件运算符?一个求绝对值的例子 int i = -8; int x = (i 0) ? -i: i;?号用法当?号 前面括号内容为真的时候,执行?号之后冒号之前的语句,否则执行冒号之后的语句6.9 goto语句与标号尽量不要在程序当中使用goto语句,7 循环语句7.1 whilewhile(条件),如果条件为真,那么循环就执行,否则循环退出7.2 continuecontinue意思是跳过下面语句,

21、继续执行循环7.3 breakbreak中断循环,7.4 do whiledo 语句wile (条件);对于do while来讲,至少能执行一次,7.5 for可以指定循环次数的语句7.6 循环嵌套8 整数在计算机内部的存储方式8.1 原码将最高位做为符号位(0代表正,1代表负),其余各位代表数值本身的绝对值+7的原码是00000111-7的原码是10000111+0的原码是00000000-0的原码是100000008.2 反码一个数如果值为正,那么反码和原码相同一个数如果为负,那么符号位为1,其他各位与原码相反+7的反码00000111-7的反码11111000-0的反码111111118

22、.3 补码原码和反码都不利于计算机的运算,如:原码表示的7和-7相加,还需要判断符号位。正数:原码,反码补码都相同负数:最高位为1,其余各位原码取反,最后对整个数 + 1-7的补码:= 10000111(原码)111111000(反码)11111001(补码)+0的补码为00000000-0的补码也是00000000补码符号位不动,其他位求反,最后整个数 + 1,得到原码用补码进行运算,减法可以通过加法实现7-6=17的补码和-6的补码相加:00000111 + 11111010 = 100000001进位舍弃后,剩下的00000001就是1的补码-7+6 = -1-7的补码和6的补码相加:11111001 + 00000110 = 1111111111111111是-1的补码

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1