一、C语言程序设计基础
1、程序设计语言发展
(1)机器语言:计算机唯一能够执行的语言(0、1序列)不具备移植性;
(2)汇编语言:把机器指令符号化,要转化成机器语言才能执行,无法移植;
(3)高级语言:执行的单位不是指令而是语句,移植性好;
(4)第四代语言:如SQL语言等查询语句;
(5)自然语言:人工智能如语音,还不成熟。
2、计算机数据表示
(1)数值型数据:如二进制、八进制、十进制和十六进制;
(2)非数值型数据:如ASCII码所代表的字符。
3、最简单的C语言程序解释
#include <stdio.h>
int main()
{
printf("Hello world!\n");
return 0;
}
这段代码执行后会在屏幕上输出 Hello world!
(1)#include <stdio.h>
#include 用来包含C语言发头文件,它会将它后面包含的文件在预处理期间,把文件的原来的内容替换到当前的位置;
头文件的包含方式:
a、< >: 这样的包含方式,它会去系统默认的头文件存放目录找<>包含起来的文件(系统默认的目录:/usr/include);
b、" ": 先在你的程序所在目录查找头文件,如果找不到,再去系统目录下找。
stdio.h 这个文件内部声明是C语言的标准输入输出相关的函数。
(2)int main() {}
这是函数的定义形式,main是一个函数,这个东西运行结束,要往外抛出一个值,int代表要抛出的值的类型。
main函数是C语言程序的入口函数,所有C语言的程序都是从main开始执行的,C语言有且只有一个main函数。
{} 内部语句叫块语句,函数所有的代码都要在大括号之内。
{} 内部定义的变量都叫局部变量,外部定义的变量叫全局变量。
(3)printf("Hello world!\n");
printf 是一个函数,功能是往标准输出打印数据,有一些固定的格式。
双引号括起来的东西叫字符串 ,printf 可以直接打印字符串。
'\n' 这个是换行的意思。
printf 它的声明是在 stdio.h这个文件里面,所以要使用 printf 必须要包含 stdio.h文件。
C语言的语句都是以 分号 ; 结尾。
(4)return 0;
return 代表一个函数运行结束,结束的时候抛出一个值,这个值的类型必须跟函数定义的时候类型一致。
对于main函数来讲,return 后面的值 代表程序的结束状态。
return 后面的语句不再执行。
4、程序的执行过程
程序的执行有4个过程分别是预编译、编译、汇编、链接。
(1)预编译:处理由#开头的命令并去掉注释生成预编译文件xxx.i;
指令:gcc -E 源文件 -o 预编译文件.i
(2)编译:把预编译文件变成汇编
指令:gcc -S 源文件或预编译文件 -o 汇编文件.s
(3)汇编:将汇编文件编译成二进制
指令:gcc -c 源文件或汇编文件 -o 二进制文件.o
(4)链接:将其他文件或者库进行链接并执行。
二、基本数据类型
1、常用单位介绍
(1)位:最小的存储单位,仅可以容纳0或1(单位:b);
(2)字节:一个字节等于8位(单位:B)
2、基本数据类型
(1)字符型(char):单个字符;
(2)整型(int short long unsigned):所有整数;
(3)浮点型或实型(float double):所有实数;
(4)数组类型([ ])
(5)结构体类型(struct)
(6)共用体类型(union)
(7)枚举类型(enum)
(8)空类型(void)
3、基本数据类型的大小
我们通过sizeof这个函数来验证各种数据类型的所占字节
sizeof是C语言的一个关键字,用来查看数据类型所占空间大小
#include <stdio.h>
int main()
{
//sizeof 是看数据类型所占空间大小,这个大小是以 字节(B)为单位
//char 是C语言的字符数据类型
//%d 用在printf 中表示往屏幕打印一个数字
printf("short:%d\n",sizeof(short));
printf("int:%d\n",sizeof(int));
printf("long:%d\n",sizeof(long));
printf("long long:%d\n",sizeof(long long));
printf("char:%d\n",sizeof(char));
printf("float:%d\n",sizeof(float));
printf("double:%d\n",sizeof(double));
return 0;
}
运行的结果为
short:2
int:4
long:4
long long:8
char:1
float:4
double:8
需要注意的是long类型在32位操作系统下是4字节,在64位系统下是8字节。
4、数据的输入和输出
(1)数据输入:
scanf()函数:输入整型scanf("%d",&a);在输入数据之前一定要对变量进行定义,不要忘了&取地址符
输入浮点型%f,输入单个字符%c,输入字符串%s。
getchar()函数:从设备输入一个字符如getchar("a");
(2)数据输出:
printf()函数:输出整型printf("%d",a);输出浮点型%f,输出单个字符%c,输出字符串%s。
putchar()函数:向终端输出一个字符putchar("a");