c语言笔记

c语言:


c语言的源代码文件是一个普通的文本文件,但扩展名必须是.c


c语言三十二个关键字:

1、auto    声明自动变量   

2、short    声明短整型变量或函数   

3、int    声明整型变量或函数   

4、long    声明长整型变量或函数   

5、float    声明浮点型变量或函数   

6、double    声明双精度变量或函数   

7、char    声明字符型变量或函数   

8、struct    声明结构体变量或函数   

9、union    声明共用数据类型   

10、enum    声明枚举类型   

11、typedef    用以给数据类型取别名   

12、const    声明只读变量   

13、unsigned    声明无符号类型变量或函数   

14、signed    声明有符号类型变量或函数   

15、extern    声明变量是在其他文件正声明   

16、register    声明寄存器变量   

17、static    声明静态变量   

18、volatile    说明变量在程序执行中可被隐含地改变   

19、void    声明函数无返回值或无参数,声明无类型指针   

20、else    条件语句否定分支(与 if 连用)   

21、switch    用于开关语句   

22、case    开关语句分支   

23、for    一种循环语句   

24、do    循环语句的循环体   

25、while    循环语句的循环条件   

26、goto    无条件跳转语句   

27、continue    结束当前循环,开始下一轮循环   

28、break    跳出当前循环   

29、default    开关语句中的“其他”分支   

30、sizeof    计算数据类型长度   

31、return    子程序返回语句(可以带参数,也可不带参数)循环条件   

32、if    条件语句

 

 

 

break:直接跳出
continue:结束本次循环

1  数据类型的定义:
变量的定义:
数据类型  变量名  【标识符】
变量的赋值:
变量名 = 值;
数据类型  变量名   【标识符】 = 值


标识符的命名规则:
1.字母,数字,下划线
2.不能以数字开头
3.见名知意
4.不能和同一函数内的其他标识符重复
5.不能使用c语言关键字
6.区分大小写

常量定义:
1.const   数据类型  常量名
2.#define 常量名 值
注意:
1.通过#define定义的常量是根据值来匹配数据类型的
2.const修饰的常量是不安全的  可以通过指针来修改


2.进制:
二进制:
      二进制逢二进一,所有的数字是0,1组成的
十进制转二进制:
      除二反序取余法
      1除2余1
二进制转化为十进制:
      全执法:将二进制各个位数乘以二的N次幂(从零开始)得到的结果相加
      1987 = 11111000011=1*2^0+1*2^1+0*2^2+0*2^3+0*2^4+0*2^5+1*2^6+1*2^7+1*2^8+1*2^9+1*2^10
八进制二进制的相互转换:
      八进制逢八进一,所有的数组是0到7组成
十进制转八进制:
      除八反序取余法:将十进制每次除以8取出余数  按照结果倒叙排序
      例如:1987除8为248余3
            248除8为31余0
            31除8为3余7
            3除8  取3
      十进制1987转化八进制为3703
       八进制转化为十进制与二进制类似(乘8的N次幂,从零开始,得到的结果相加)
八进制转化为二进制:
      八四二一法则
      参照表:八进制    二进制
              0         0
              1         1
              2         10
              3         11
              4         100
              5         101
              6         110
              7         111
将二进制的每一位用相对应的8,4,2,1来表示
1位数   是该数本身
2位数   是2+1
3位数   如果都有值是4+2+1


十进制转化为十六进制:
     除十六反序取余法:将十进制每次除以16取出余数    按照结果倒叙
     1987除以16为124余3
     124除以16为7余12
     7不够被16整除取7本身
十进制1987转化为十六进制为7c3
十六进制转化为十进制:
     7c3
     第零位:3*16^0=3
     第一位:c*16^1=192
     第二位:7*16^2=1792
     1792+192+3=1987
十六进制转化为二进制:
     7c3
     0111 1100 0011
二进制转化为十六进制:
4位一嗝


十六进制转化为八进制:
十六进制:7c3
0111 1100 0011
011 111 000 011
八进制:3703


八进制转化为十六进制;
八进制:3703
011 111 000 011
0111 1100 0011
十六进制:7c3


进制在程序中打印:
int a=10;//十进制中的10
int b=010;//八进制中的10(在程序中定义一个八进制数,需要在数前面加上一个0(零)区分)
int c=0x10;//十六进制中的10(在程序中定义一个十六进制数,需要在数的前面加上0x或0X区分)
int d=0X10;//十六进制中的10(一个小写的a,一个大写的A)
注意:在程序中没有办法表示一个二进制数
%d将数据按照十进制输出
%o将数据按照八进制输出
%x将数据按照十六进制小写输出
%X将数据按照十六进制大写输出


源码反码补码和sizeof:
1986
数据在计算机中主要是以补码形式存在
bit(比特):一个二进制代表一位,一位只能代表0或1两种状态,数据传输是习惯以位(bit)为单位
Byte(字节):一个字节为8个二进制,称为8位,计算机中储存的最小单位为字节。数据传输是习惯以位(bit)为单位。
一个有符号的整型数据可以分为两部分   一部分是符号位   一部分是数字位
对于正数,原码,反码,补码相同
对于负数,其补码位它的反码加1
补码符号位不动,其他位求反,最后整个数加1,得到补码
1986原码:0000 0000 0000 0000 0000 0111 1100 0010
-1986原码:1000 0000 0000 0000 0000 0111 1100 0010
1986反码:0000 0000 0000 0000 0000 0111 1100 0010
-1986反码:1111 1111 1111 1111 1111 1000 0011 1101
1986补码:0000 0000 0000 0000 0000 0111 1100 0010
-1986补码:1111 1111 1111 1111 1111 1000 0011 1110
溢出:在数据进行操作的时候会导致超出数据类型大小,会向前位进1,多于原始数据类型大小,会被系统自动舍弃,保留从后面开始数据类型大小的位数


4.(sizeof)
求数据类型在内存中占的大小(byte)
int value =sizeof(变量名)
int value =sizeof(数据类型)也可以写为sizeof空格  数据类型
注意前提:根据32位系统得到的类型
char(字符型)【1】<short(短整型)【2】<=int(整型)【4】|float(浮点型)【4】|long(长整型)【4】<long long(长长整型)【8】|double(双精度浮点型)【8】

 

posted on 2019-04-07 22:15  不冒泡的苏打水  阅读(223)  评论(0编辑  收藏  举报

导航