计算机语言的发展
什么是C语言?
计算机语言是人与计算机交流的语言,C语言是计算机语言。此外计算机语言还有c++ 、jave、py等语言。
计算机语言的发展
二进制语言
- 电脑是硬件,只能识别电信号 +-电,正负电分别对应二进制数1(正电)、0(负电)。如1010000101011比较复杂,需要查手册才能写代码。
汇编语言
为了能更便捷的写代码,便给常用序列汇编成固定符号。如10100001--ADD表示。ADD为助记符,用助记符表示二进制序列的语言叫做汇编语言。
B语言
以上语言称为低级语言
C语言
C++语言
C语言后为高级语言
补
美国国家标准语法ANSI
如89年的C语言标准———c89;
90年的C语言标准——c90;
后期还有c99、c11等标准,但其并不流行,很多编译器都不支持。
常用编译器
Clang、GCC、MSVC、TurboC等
第一个C语言程序
常用快捷键
Fn+F10从某行开始执行
Ctrl+Fn+F5运行
Fn+F7 编译
数据类型
- 数据类型用于向内存申请空间,创建变量
- short——短整型,也为short int
- float——单精度浮点型
- double——双精度浮点型
- 单双精度的结果都为小数点后6位
%d——打印整型(十进制数)
%c——打印字符
%p——以地址形式打印
%——打印十六进制数
每种类型大小
选用合适的数据类型,以便申请合适的储存空间,避免浪费
计算机单位
- 数据存储是以"字节" (Byte) 为单位,数据传输大多是以"位" (bit,又名"比特") 为单位,一个位就代表一个0或1 (即二进制)
bit——比特,又称"位", 计算机中每个0或1就是一个位——一个比特位存放一个二进制位 ;
1B (byte,字节) = 8 bit ((bit)) ;
1KiB(Kibibyte,千字节)=1024B= 2^10 B;
1MiB (Mebibyte,兆字节,百万字节,简称"兆") =1024KB= 2^20 B ;
1GiB (Gibibyte,吉字节,十亿字节,又称"千兆") =1024MB= 2^30 B ;
1TiB (Tebibyte,万亿字节,太字节) =1024GB= 2^40 B ;
1PiB (Pebibyte,千万亿字节,拍字节) =1024TB= 2^50 B ;
1EiB (Exbibyte,百亿亿字节,艾字节) =1024PB= 2^60 B ;
1ZiB (Zebibyte,十万亿亿字节,泽字节) = 1024EB= 2^70 B ;
1YiB (Yobibyte,一亿亿亿字节,尧字节) = 1024ZB= 2^80 B ;
换算为1024
进制换算(权重^比例)
123转十进制
123=1^102+2^101+3^100
二进制转十进制
001=1^20=1
010=1^21+0^20=2
011=2+1=3
100=1^22=4
共有23=8种数,即2比特个数个
八进制转十进制
八进制数由0-7构成,最大数字为7,不可有380等存在大于7的数,可有370
32=3^81+2^80=26
变量
定义方法
数据类型+变量名=赋值
变量分类
局部变量
定义在{}代码块内的变量,其作用域为局部{}代码块内
全局变量
定义在{}代码块外部的变量,其作用域为整个程序
注意
- 当局部变量和全局变量同时存在,且变量名都相同时,局部变量优先。
- 局部变量名和全局变量名不建议相同,否则容易出bug
- C语言语法规定,变量要定义在当前代码块的最前面,即用前定义好
变量作用域
代码中所用到的变量不总是有效/有用的,在哪里可以用,哪里即是其作用域。
生命周期
- 局部变量:进入作用域{}周期开始,出作用域生命结束
- 全局变量:作用于整个程序。
常量
字面常量
直接写出的值。如3、4
const修饰的常变量
有const修饰后,被修饰的值具有常属性(即将变量固定为一个常量,不可再改变)。
#define定义的标识符常量
枚举常量
枚举关键字——enum
ASCⅡ码
数据在计算机存储时以二进制存储,故每一个符号都有其对应的二进制序列,为表示便捷,将其转换为十进制,这种给给每个元素编号的方式称为ASCⅡ编码,其值为ASCⅡ码值。
ASCⅡ码表
如a——97 A——65大小写差值为32
符串+转义字符+注释
字符串
由双引号引起的一串字符称为字符串面值,简称字符串。如“hello,world\n”
注:计算字符串长度时\0或0是结束标志,不作为字符串内容。若无结束标志,则会继续打印随机值,直到遇到结束标志0为止。
转义字符
转变原来的意思
三字母词:??+其他 如??)——>]
转义字符 |
意义 |
ASCⅡ码值(十进制) |
\? |
书写多个?时,防止其被解析为三字母词 |
063 |
\\ |
用于表示一个\防止其被解析为转义序列符 |
092 |
\ddd |
\十八进制数 ddd表示八进制数,如\130x |
|
\xdd |
\x十六进制数 dd表示2个十六进制数,如\x300 |
|
\a |
响铃(BEL) |
007 |
\b |
退格符 |
|
\r |
回车 |
|
\' |
表示字符常量‘ |
注释
- C语言中为/* */ 缺点为不可嵌套注释,遇到*\即结束
- c++中为//
语句
选择语句
循环语句
while 语句
for语句
do----while语句
函数
数组
一组相同类型元素的集合
int arr[10]={1,2,3,4,5,6,7,8,9,10} 数组
下标从0开始0,1,2,3,4,5,6,7,8,9 如arr[2]=3
操作符
算术操作符
%——取模(即取余数)。如a=5%2=1; a=5/2=2
位(二进制)操作符
&——按位与(同真则真)
|——按位或(有真则真)
^——按位异或同假异真/同为0,异为1)
赋值操作符
- 一个=为赋值 ;两个==为判断相等
- 复合赋值符+=,*=,&=,/=,》=,《= ,^=,|=
如:
a=a+10<==>a+ =10
a=a-10<==>a- =10
a=a&2<==>a& =2
单/双/三目操作符
单目操作符
只有一个操作对象,如:
- !(逻辑反操作符)——>改变真假
C语言中0表示假,一切非0表示真
- -(负值),
- &(取地址符)——>有多个变量时,需要取出对应地址来存储变量
- sizeof操作符——>计算的是变量(括号可省)/数据类型(括号不可省略)所占 空间大小,单位字节。
- ~(对一个数的二进制位取反)
双目操作符
有两个操作对象