C语言基础-简介、程序基本框架

C语言基础-简介、程序基本框架

一、编程基础知识

1、二进制、十进制、十六进制;

计算机内部,用二进制;

二进制,0,1;超过2就进位;

0 1

1 1

2 10

3 11

4 100

...

二进制在C语言中的表示:0b10010101

十进制转换成二进制:除2取余,从后往前取;

10

2--------------

50

21

10

---------------^

十进制10 = 二进制 1010 = 十进制 1 * 2^3 + 0 * 2^2 + 1 * 2^1 + 0 *2^0 = 8 + 0 + 2 + 0 = 10

要求记忆:

2^0 1

2^1 2

2^2 4

2^3 8

2^4 16

2^5 32

2^6 64

2^7 128

2^8 256

0~9, 10 11 12 13 14 15

十六进制:0~9,A, B, C, D, E, F

十进制转16进制,除16取余

37

16--------

25

十进制37 = 十六进制25 = 2 * 16^1 + 5 * 16^0 = 37

十六进制在C语言中的表示:0x25

要求记忆:

(D)十进制01234567

(H)十六进制 01234567

(B)二进制0000 0001001000110100 01010110 0111

十进制89101112131415

十六进制 89ABCDEF

二进制1000 10011010 1011 1100110111101111

十六进制17 = 00010111

10进制70 = 64 + 6 =十六进制 40 +6 = 46 = 01000110

2、ASCII 码表

ASCII表中:

理解记忆:

0x20之前是控制字母,不可见;用于控制外设或协议标志;

回车,0xD,换行,0xA;

阿拉伯数字,0-9,对应的ASCII值,0x30-0x39

大写字母,A-Z,对应的ASCII值,0x41-0x5A

小写字母,a-z,对应的ASCII值,0x61-0x7A

2、机器语言、汇编语言、高级语言;

汇编:assembly,从汇编语言的程序,翻译成机器语言,让CPU执行;

编译:compile,从高级语言的程序,翻译成汇编程序,然后,利用原有的汇编器翻译成机器语言,让CPU执行;

Fortran,Cobol,pascal,发展出C语言;

3、C语言特性;

语法简洁,无论是关键字,变量,运算符,包括整个程序结构,非常简洁;

目标代码量小,效率高;

特有的地址操作功能;

4、编译过程简介;

二、第一个C语言程序

1、框架;

源文件以.c作为后缀,头文件以.h作为后缀;

/**/之间的内容,作为注释,本身不执行,只是便于代码的阅读者理解

//之后的内容,也是注释,只限于本行;

#include 文件包含,把其他文件的内容,也一起引入进本文件;

/*

l 第一个C语言程序

l 在当前终端界面输出Hello World!

l QianFeng edu

l Apr 20,2023

*/

#include

//这个我的第一个c语言程序

int main()

printf("Hello world!\n");

return 0;

除了注释,所有字符,半角;

(),{},必须成对、匹配、闭合;

每行最好1条语句,用;结尾;

所有语句,自上而下顺序执行;

所有C语言代码中,出现的字符,都是大小写敏感;

2、编译环境配置;

sudo apt-get install build-essential

gcc 源文件

自动在当前目录下,生成a.out

执行a.out输出结果

如果提示a.out找不到,可输入./a.out执行;也在在用户工作目录配置PATH变量,如下:

cd ~

vim .bashrc

在最后一行,增加下面内容:

export PATH=$PATH:/home/melvyn/prjDemos

红色部分用自己的a.out所在的实际目录代替;

然后保存,并执行 source .bashrc

3、生成文件简介;

gcc s1-d01-c1-hello.c,自动生成a.out

gcc s1-d01-c1-hello.c -o hello,生成我们自己的程序名hello;

gcc -S s1-d01-c1-hello.c -o hello.s 生成中间的汇编语言文件hello.s;

gcc -g s1-d01-c1-hello.c 生成带调试信息的a.out

4、C语言程序代码规范;

好程序的4个标准:正确,可靠,易读,好维护;

必要的注释;适当空行;缩进风格;最好每行一条语句,如果单条语句太长就分成多行;

变量和函数命名,符合规范。