C语言发展史
1969年
贝尔实验室 肯尼斯·蓝·汤普逊,丹尼斯·李奇
开发了B语言 -》Unix,New B语言,改名C语言
83年提出C语言标准
1989年十二月正式通过C语言标准,C89标准
C primegraimer
94年提出C语言标准
1999年 C99标准通过
C语言的特点:
优点:高效、可移植,功能强大、灵活
缺点:C语言的错误容易隐藏。(段错误)
C语言很难理解
1.gcc编译器
2.注释
3.变量
4.标示符
5.c语言的基本数据类型
6.进制转换
1.gcc编译器
gcc编译命令 GNU编译器
#include 预处理指令
<3>.指令指令:我们把预处理器执行的命令称为指令。
c程序就是函数的集合。
<1>.函数 函数分为两大类:1、程序员自己编写的。
2.库函数。
main函数:main函数是一个函数,它会在程序终止时
向操作系统返回一个状态码。
<2>.语句 语句:程序运行时执行的命令。
return语句
#include"head.h" //自己写的头文件
#include<stdio.h> //系统定义的头文件。
path 环境变量 标注了库函数存放的路径以及系统函数存放的路径
<>
"" cong当前目录开始找头文件,当前找不到去环境变量里去找
1.gcc编译器
gcc编译命令 GNU 编译器
编译器通常要求带上文件的扩展名.c
#include 预处理指令
include 包含
stdio.h 文件
main() 函数 主函数 ,程序的入口
任何一个程序都是从main函数开始以main函数结束
printf 在控制台打印
把程序转化成可执行的形式通常包含三个步骤:
预处理(预处理器) 编译(编译器) 链接(链接器)
2.环境变量
vi .bashrc 编辑环境变量命令,尽量不要随便改写
计算机 -》右键属性 -》高级系统设置-》 编辑
source .bashrc 重新配置环境变量
必须在主文件目录下编辑
编译过程 gcc hello.c
执行过程 a.out 或 ./a.out
环境变量举例
C:\Program Files (x86)\Microsoft Visual Studio\Common\MSDev98
bin 文件夹里都是命令
PATH=.:PATH 这句话什么意思?
¥ PATH 取 path的值 PATH是变量
用户环境变量
系统环境变量
sleep 100 系统睡眠一百秒
ctrl + c 终止命令
ctrl + d 退出
ctrl + z 让当前程序到后台执行
jobs 列出在后台执行的所有进程
fg 3 把后台执行的进程3调到前台
gcc 完成 两个工作 :编译、链接
gcc -c 只编译不链接
gcc 链接 编译加链接
gcc -E 只预处理
gcc -S 生成汇编语言
gcc hello.c -o hello 给可执行程序重命名
gcc -help 看其他命令
gcc -std =c89指定标准
2注释:
单行注释 和 多行注释
//单行注释 仅在c99标准中支持,一双斜线开始
/*多行注释 中间写多少行都没关系*/
多行注释不可以嵌套
3基本类型
本质:是内存的一块命了名的区域&salary。
当我们访问变量的时候其实就是访问这块存储空间。
变量的类型:c语言有很多种类型包括:基本数据类型和复合数据类型。
基本:int,char,float。double。 short
占字节数 4 1 4 8 byte 2
类型给定了变量的大小
复合数据类型:字符串,
所有的字符在内存中都对应一个数字,
a=97 并以字符的形式存在内存中;
变量的生命:c89要求先声明后使用,一般给出是指,
不赋初始值变量的值是不确定
c99增强了变量的使用,使用前在声明
空格 32
sizeof(类型或变量);查看数据类型所占的字节数
sizeof()为c语言的关键字,或运算符但不是函数。
3.1 字符
1.‘a’字符的一种表现形式
2.字符的另一种表现形式‘\n‘转义字符
\t = Tab
\b = backspace
\\=\ 转义为\
3.2 int 整数:
所占的字节=4个字节
短整数 short 2
整数 int 4
长整数 long 4(32位) 8(64位)
short s=9; //0000 0000 0000 1001 16位=两个字节
short s=-1 // 最高位为符号位 1为负 0为正
//1111 1111 1111 1111 补码去符号 整数值 按位取反加1
练习:写出-57和-119在内存当中的基本形式(按位取反加1)
- 57 1111 1111 1100 0111
-119 1111 1111 1000 1001
c89标准先声明后使用,一般要求你赋初值
printf("") ; //格式化输出
整数常量
short s2=3.5 ; //double
3.5f; //float
3.5L; //long double
35L; //long int
4.标示符
变量名:1.可以是数字,字母,下划线;数字不能打头
2.大小写敏感
max Max mAx
3.声明不能与关键字冲突;
4.c89要求长度不能超过31个字符,c99不能超过63个字符
return 0;程序结束
6、进制转换。
11 十进制
011 八进制
0x11 十六进制
二进制,机器可以识别
十进制。
八进制。
十六进制。
1.二进制
二进制转十进制
0111 1101
权重:0*2(7)+1*2(6)+1*2(5)++1*2(4)
权数:2,10
对应位的数字乘以权重,计算和
十进制转二进制:
119:拆分:64+32+16+4+2+1
规范方法:除2取余 余数倒序排列就是二进制形式。
-119
补码:0111 0111 取整数部分 按位取反在加1得负数
1000 1000 -》1000 1001=-119
表示负数的二进制转换成十进制
1110 1110.
0001 0010-》16+2=18 -18 按位取反加1 zai加上符号位
-》1110 1101 -》1110 1110
八进制:
017 八进制-》十进制
权重:1*8(1)+7*8(0)=15
对应为的数字乘以权重,计算和
十进制转八进制
15-》8+7 -》0000 1111 -》00 001 111
十六进制:
十六进制转十进制
0xFF 0 9 a b c d e f
10 11 12 13 14 15 16
15*16(1)+15*16(1)=255
十进制转十六进制
128=1000 0000=0x80
0xFFFF FFFF 表示-1 无符号数位42 000 000 000
0277777 77777
199 -》0111 0111 周三没航班
gcc编译器与基本类型3