C基础班讲义v10Word下载.docx

上传人:b****6 文档编号:18908288 上传时间:2023-01-02 格式:DOCX 页数:23 大小:158.99KB
下载 相关 举报
C基础班讲义v10Word下载.docx_第1页
第1页 / 共23页
C基础班讲义v10Word下载.docx_第2页
第2页 / 共23页
C基础班讲义v10Word下载.docx_第3页
第3页 / 共23页
C基础班讲义v10Word下载.docx_第4页
第4页 / 共23页
C基础班讲义v10Word下载.docx_第5页
第5页 / 共23页
点击查看更多>>
下载资源
资源描述

C基础班讲义v10Word下载.docx

《C基础班讲义v10Word下载.docx》由会员分享,可在线阅读,更多相关《C基础班讲义v10Word下载.docx(23页珍藏版)》请在冰豆网上搜索。

C基础班讲义v10Word下载.docx

4.1字符串在计算机内部的存储方式19

4.2printf函数,putchar函数19

4.3scanf函数与getchar函数20

5运算符表达式和语句21

5.1基本运算符21

5.1.1=21

5.1.2+21

5.1.3–21

5.1.4*21

5.1.521

5.1.6%21

5.1.7+=21

5.1.8-=21

5.1.9*=22

5.1.10=22

5.1.11%=22

5.1.12++22

5.1.13--22

5.1.14逗号运算符22

5.1.15运算符优先级22

5.2复合语句23

5.3类型转化23

6条件分支语句23

6.1关系运算符23

6.1.1<

23

6.1.2<

=23

6.1.3>

6.1.4>

=24

6.1.5==24

6.1.6!

6.2关系运算符优先级24

6.3逻辑运算符24

6.3.1&

&

24

6.3.2||25

6.3.3!

25

6.4if26

6.5ifelse27

6.6ifelseif27

6.7switch与break,default27

6.8条件运算符?

27

6.9goto语句与标号27

7循环语句27

7.1while27

7.2continue27

7.3break28

7.4dowhile28

7.5for28

7.6循环嵌套28

8整数在计算机内部的存储方式28

8.1原码28

8.2反码29

8.3补码29

1第一个c语言的helloworld

1.1include头文件包含

头文件包含,写法#include<

文件名>

1.2main函数

这个就是C语言程序的入口,所有的C程序都是从main开始执行,一个C的源程序必须有一个main函数,也只能有一个main函数

1.3注释

//注释一行

/**/代表块注释,可以注释多行代码

1.4{}括号和代码块

代表一个代码单元

1.5声明

C语言规定,所有的变量和函数必须先声明,然后才能使用.

1.6C语言自定义名字的要求

可以使用大小写字母,下划线,数字,但第一个字母必须是字母或者下划线

字母区分大小写

变量名最好用英文,而且要有所含义,通过变量的名称就能猜测变量的意思。

1.7return语句

在C语言当中任何函数遇到return代表这个函数停止,当main函数遇到return,代表整个程序退出

return代表函数的返回值,如果返回类型是void,可以直接写return,而不需要返回任何值

2C语言的编译

2.1编译过程

2.2gcc编译选项

-o代表指定输出文件名

-E代表预编译

预编译处理include的本质就是简单的将include中的文件替换到c文件中

如果include包含的头文件在系统目录下,那么就用#include<

>

如果包含的文件在当前目录下,那么用#inlclude“”

-S代表汇编

-c代表编译

2.3printf执行原理

2.4CPU32位64位简介

一个字节是8个bit,一个字是两个字节,整型4个字节

8位寄存器

AL00000000256

16位寄存器

AXALAH

0000000000000000

1111111111111111

四个通用寄存器

AX

BX

CX

DX

32位寄存器

EAX0000000000000000000000000000000000000000000000111111*********1111111111111111111

EBX

ECX

EDX

64位寄存器

REAX

REBX

RECX

REDX

3C语言中的数据类型

3.1常量

常量就是在程序中不可变化的量,常量是不可被赋值的。

3.1.1#define

#define的本质就是简单的文本替换

通过#define定义的常量,在C语言里面一般叫宏定义

3.1.2const

const定义一个变量,但是这个变量的值只能在定义的时候赋予,之后就不可以修改。

对于const类型的变量,一定要在定义的时候给变量赋初值,不然定义之后就无法赋值了。

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语言中八进制是数字前面加0

3.3.5十六进制

0,1,2,3,4,5,6,7,8,9,a,b,c,d,e,f,10

逢16加1,

在C语言当中表达一个十六进制数的方式,数字前面加0x前缀

3.3.6字节

8个bit为代表一个字节

3.4sizeof关键字

sizeof与size_t类型

sizeof是计算数据在内存当中占多大空间的,单位字节

由于sizeof永远返回的是一个大于等于0的整数,所以如果用int来表示sizeof的返回值就不合适,size_t一般就是一个无符号的整数.

3.5十进制,二进制,八进制,十六进制

3.6int类型

3.6.1int常量,变量

一个int型数据占据4个字节的内存大小,在16位操作系统下,int是2个字节,在32和64位操作系统下,int是4个字节。

inta;

//代表在内存当中开辟一个4个字节大小的空间

a=10;

//代表4个字节的空间内容是常量10

小端对齐和大端对齐

高地址放高位,底地址放低位---小端对齐

高地址放低位,底地址放高位—大端对齐

对于大型unixCPU都是按照大端对齐方式处理int,

但对于x86构架CPU,还有ARM,是小端对齐的

3.6.2printf输出int值

inta=0x100;

//十六进制

printf(“%d”,a);

%d的意思是按照10进制打印一个整数

%x

%X,输出十六进制的时候是用大写的ABCDEF还是小写的abcdef,

3.6.3printf输出八进制和十六进制

%o

3.6.4short,long,longlong,unsignedint

在32位系统下:

short=2个字节

long和int一样,是4字节

longlong是8个字节

在64位操作系统下

int,4个字节

long在大多数64位系统下8个字节

unsignedint//无符号整数

unsignedlong//无符号的长整数

unsignedshort//无符号短整数

9l,9L,9ll,9LL,9u,9ull,9ULL

3.6.5整数溢出

当把一个大的整数赋值给小的整数,叫溢出。

intI=0x12345678

shorta=I;

当一个int赋值给short,会将高位抛弃,

3.7char类型

3.7.1char常量,变量

char是字符型,代表一个字节的内存

char在内存当中,有符号最大7f,

无符号,最大ff

unsignedchar

char的本质就是一个字节,一个BYTE

3.7.2printf输出char

%c

3.7.3不可打印char转义符

\a,警报

\b退格

\n换行

\r回车

\t制表符

\\斜杠

\’单引号

\”双引号

\?

问号

3.7.4char和unsignedchar

char取值范围为-128到127

unsignedchar为0-255

3.8浮点float,double,longdouble类型

3.8.1浮点常量,变量

floatf=2.5;

doublef1=3.1415926

3.8.2printf输出浮点数

%f,%Lf

3.9类型限定

3.9.1const

const限定一个变量的值不可以改变

3.9.2volatile

告诉编译器不要自作聪明的给我优化代码,把我的变量优化的寄存器里面计算,只要是volatile类型变量,每一步都需要从内存当中读取。

3.9.3register

register告诉编译器,这个变量只是用寄存器就好,提高效率,所以说register只是一个建议,而不是必须的结果。

4字符串格式化输出和输入

4.1字符串在计算机内部的存储方式

字符串是内存中一段连续的char空间,以’\0’结尾

字符串就是0结尾的连续char的内存

4.2printf函数,putchar函数

printf格式字符

字符

对应数据类型

含义

d

int

接受整数值并将它表示为有符号的十进制整数

hd

Shortint

短整数

hu

Unsignedshortint

无符号短整数

o

unsignedint

无符号8进制整数

u

无符号10进制整数

x/X

无符号16进制整数,x对应的是abcdef,X对应的是ABCDEF

f

float或double

单精度浮点数或双精度浮点数

e/E

double

科学计数法表示的数,此处"

e"

的大小写代表在输出时用的“e”的大小写

c

char

字符型。

可以把输入的数字按照ASCII码相应转换为对应的字符

s/S

char*/wchar_t*

字符串。

输出字符串中的字符直至字符串中的空字符(字符串以'

\0‘结尾,这个'

\0'

即空字符)

p

void*

以16进制形式输出指针

%

输出一个百分号

printf附加格式

l

附加在d,u,x,o前面,表示长整数

-

左对齐

m(代表一个整数)

数据最小宽度

将输出的前面补上0

直到占满指定列宽为止

不可以搭配使用

N(代表一个整数)

宽度至少为n位

不够以空格填充

printf是打印一个字符串

putchar是打印一个字符

4.3scanf函数与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+=

inta=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逗号运算符

intI=6+5,3+2

逗号表达式先求逗号左边的值,然后求右边的值,整个语句的值是逗号右边的值。

5.1.15运算符优先级

优先级

运算符

结合性

1

++(后缀),--(后缀),()(调用函数),{}(语句块),.,->

从左到右

2

++(前缀),--(前缀),+(前缀),-(前缀),!

(前缀),~(前缀),sizeof,*(取指针值),&

(取地址),(type)(类型转化)

从右到左

3

*,/,%

4

+,-

5

<

>

6

<

=>

=

7

==!

8

9

^

10

|

11

12

||

13

?

14

=,*=,%=,+=,-=,<

=,>

=,&

=,|=,^=

15

(逗号运算符)

5.2复合语句

{}代码块

5.3类型转化

doubled=10.2;

inta=d;

//隐式转换

inta1=3;

inta2=2;

doublemid=(double)a1/(double)a2;

//显示的强转

printf("

mid=%f\n"

mid);

6条件分支语句

6.1关系运算符

在C语言中0代表假,非0代表真,

在计算机程序判断是根据一个条件返回是真还是假来做不同的操作。

6.1.5==

一个=号在C语言里面是赋值的,不是比较的,但是很多初学者爱犯一个严重的错误,就是用=号来比较两个数是否相等

!

6.2关系运算符优先级

前四种相同,后两种相同,前四种高于后两种优先级

6.3逻辑运算符

逻辑与

6.3.2||

逻辑或

逻辑非

6.4if

6.5ifelse

两路分支if语句,只可能执行一路,不可能同时执行两路,也不可能两路都没有被执行

6.6ifelseif

ifelseif这种于语法可以实现多路的分支,但只有一路被执行。

else永远是和最近的一条if语句配对。

6.7switch与break,default

switch是为多重选择准备的,遇到break语句,switch就终端执行

一个求绝对值的例子

inti=-8;

intx=(i<

0)?

-i:

i;

号用法

当?

号前面括号内容为真的时候,执行?

号之后冒号之前的语句,否则执行冒号之后的语句

6.9goto语句与标号

尽量不要在程序当中使用goto语句,

7循环语句

7.1while

while(条件),如果条件为真,那么循环就执行,否则循环退出

7.2continue

continue意思是跳过下面语句,继续执行循环

7.3break

break中断循环,

7.4dowhile

do

语句

wile(条件);

对于dowhile来讲,至少能执行一次,

7.5for

可以指定循环次数的语句

7.6循环嵌套

8整数在计算机内部的存储方式

8.1原码

将最高位做为符号位(0代表正,1代表负),其余各位代表数值本身的绝对值

+7的原码是00000111

-7的原码是10000111

+0的原码是00000000

-0的原码是10000000

8.2反码

一个数如果值为正,那么反码和原码相同

一个数如果为负,那么符号位为1,其他各位与原码相反

+7的反码00000111

-7的反码11111000

-0的反码11111111

8.3补码

原码和反码都不利于计算机的运算,如:

原码表示的7和-7相加,还需要判断符号位。

正数:

原码,反码补码都相同

负数:

最高位为1,其余各位原码取反,最后对整个数+1

-7的补码:

10000111(原码)

111111000(反码)

11111001(补码)

+0的补码为00000000

-0的补码也是00000000

补码符号位不动,其他位求反,最后整个数+1,得到原码

用补码进行运算,减法可以通过加法实现

7-6=1

7的补码和-6的补码相加:

00000111+11111010=100000001

进位舍弃后,剩下的00000001就是1的补码

-7+6=-1

-7的补码和6的补码相加:

11111001+00000110=11111111

11111111是-1的补码

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 初中教育 > 科学

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

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