1.名词解释
- 程序:(能被计算机识别和执行的)指令
- 程序设计:解决特定问题的程序的过程
- 机器指令:能够被计算机直接识别并执行的指令(二进制)
- 机器语言:机器指令的集合
1011 0110 0000 0000
- 汇编语言:低级语言,抽象机器指令,一条汇编指令转换为一条机器指令
ADD A,B => A+B
- 高级语言:语言功能强,不依赖于机器,易于人类理解
- 源程序:高级语言写的程序
- 目标程序:机器指令的程序
2.C语言介绍
- 高级语言–>汇编语言–>机器语言
- C语言(源程序)----编译程序---->机器语言(目标程序)
1.预处理:将所有的#include头文件以及宏定义(define)替换成其真正的内容
2.编译:预处理之后的程序转换成特定汇编代码
3.汇编:汇编过程将上一步的汇编代码转换成机器码(目标文件)(.obj)
4.链接:链接过程将多个目标文以及所需的库文件,链接成最终的可执行文件(.exe)
#include<stdio.h> //(头文件)编译的预处理指令
#define N 200 //符号常量
int main(){ // 主函数
printf("this is a C\n");
printf("%d",N) ;// 输出
return 0; //函数返回值
}
运行结果:
this is a C
200
3.C语言特点:
面向过程的;可以直接对硬件进行操作;可移植性好;程序执行效率高
(简洁灵活、运算符丰富、数据类型丰富,自由度高)
4.C语言结构特点:
一个程序有一个或多个源程序文件组成,其中仅有一个main()主函数(是程序第一个执行的)
源程序文件=预处理指令+全局声明+函数定义
每条语句最后必须加” ;“
#include<stdio.h>//(头文件)预处理指令
#include<math.h>
#define N 200 (为什么这里没有“;”)??? //常量
int a=2; 全局声明
int max(int a,int b); //函数定义
int main(){ // 主函数
int c = 1;
char d='happy';
c=max(a,N);
printf("%d\n",c);
c=20;
return 0; //函数返回值
}
运行结果:
200
5.C语言常量与变量
数据中有两种表现形式:常量与变量
1.常量:指在程序运行过程中,其值始终保持不变的量(只读不可写)
整型常量(2)、实型(浮点型)常量(2.3,1e3=1x 1 0 3 10^3 103)、字符常量(普通字符(x)、转义字符(\n))、字符串常量(string)、符号常量(define)
2.变量:指在计算机运行时,其值可以发生变化的量(可读可写)
变量特点:先定义,后使用
(变量名、变量值)
3.常变量:关键字const(可读不可写)
const int a=5;
a=3 (x)
![在这里插入图片描述](https://img-blog.csdnimg.cn/808b663780e145a0bdd898f465d4705c.jpeg)
6.标识符(变量、函数名)的命名规则
只能由字母、数字、下划线三种字符组成,且第一个字符不能以数字开头
不能使用关键字和函数名命名
int 8_k; (x)
int k_8; (V)
int char=2; (X)
int max=2; (X)
int max(int a,int b){
..............
}
7.数据类型
整型数据(int):
-
基本整形(int):编译系统分配给int型数据
2个字节或4个字节,32位(32bit)。int name=value; 带符号 -2^31 ~ 2^31-1 unsigned int name=value; 无符号 0 ~ 2^32-1 0|000 0000 0000 0000 0000 0000 0000 0000 ==4字节 其中name是变量名,value是变量初始值。
-
短整型(short int):系统分配2字节,即16位(16bit)。
short name; -2^15 ~ 2^15-1 unsigned short name;
-
长整型(long int):类型名为long int或long,4字节,即32位。
long name; unsigned long name;
4.双长整型(long long int):8字节
long long name;
unsigned long long name;
字符型数据类型(char):
字符型数据是按其代码(整数)形式存储的,因此C99中将字符型数据作为整数类型的一种。
char name = "1" char类型占1字节,8bit
char name = 'b'
字符'1'的ASCII码值为49
注意:
int a = 1; 4字节
int b = 3;
a+b =>4
(实型)浮点型数据
- 浮点数类型包括float(单精度浮点型)、double(双精度浮点型)、long double(长双精度浮点数)
- float型(单精度浮点数):编译系统为每一个float型变量分配4个字节(32bit)。
float name = 3.14 3.14f
- double(双精度浮点数):用8个字节(64bit)存储一个double型数据。
double name = 3.14
其他类型:
枚举、空类型、==指针、数组、结构体==、共用体、==函数类型==、布尔类型。
8.运算符
1.算数运算符:
加(+)、减(-)、乘(*)、除(/)、求余(或称模运算,%)、==自增(++)、自减(--)==共七种
5%2 = 1 求奇偶数
5/2 = 2.5
#include<stdio.h>
int main(){
int i=1;
i=i+1 <=> i++ <=> ++i
printf("2+i++ = %d\n",[2+i]++);
int j=1;
printf("++i+2 = %d\n",[++j]+2);
return 0;
}
运行结果:
2+i++ = 3
++i+2 = 4
2.关系运算符:
大于(>)、小于(<)、等于(==)、 大于等于(>=)、小于等于(<=)和不等于(!=)六种
3.逻辑运算符:
- 与(&&): 如果两个操作数都非零,则条件为真。
- 或(||): 如果两个操作数中有任意一个非零,则条件为真。
- 非(!): 如果条件为真则逻辑非运算符将使其为假
4.位操作运算符
位与(&)、位或(|)、位非(~)、位异或(^)、左移(<<)、右移(>>)六种
5.赋值运算符
简单赋值(=)、复合算术赋值(+=,-=,*=,/=,%=)和复合位运算赋值(&=,|=,^=,>>=,<<=)
+=: 加且赋值运算符 C += A 相当于 C = C + A
-=: 减且赋值运算符 C -= A 相当于 C = C - A
*=: 乘且赋值运算符 C *= A 相当于 C = C * A
/=: 除且赋值运算符 C /= A 相当于 C = C / A
%=: 求模且赋值运算符 C %= A 相当于 C = C % A
6.条件运算符
三目运算符 ( ? : ) <=> if语句
<表达式1> ? <表达式2> : <表达式3>
#include<stdio.h>
int main(){
.......
int a = 1;
a>2?a=0:a=1;
1>2
if(a>2){
a=0;
}
else{
a=1;
}
.......
return 0;
}
如果a>2成立,则执行<表达式2>,将a赋值为0;若不成立,则执行<表达式3>
7.其他运算符
指针运算符 :用于取内容(*)和取地址(&)二种运算
指向:常用于结构体指针变量访问成员。(->)
9.C语句
C语句作用和分类
1)一个函数包含声明部分和执行部分
2)一个C程序由若干个源程序文件组成,一个源文件可以由若干个函数和预处理指令以及全局变量生命部分组成。
#include<stdio.h> 预处理指令
int x; 全局变量
int max(int a,int b); 函数声明(定义)
int main(){ 主函数
.......
int c;
c=max(1,2);
return 0;
}
int max(int a, int b){ 函数体(执行部分)
........
return (int);
}
3)控制语句:if()…else…,for()…,while()…,do…while(),continue,break,switch,return,goto
4)函数调用语句:函数调用语句由一个函数调用加一个“;”组成
5)表达式语句:由一个表达式加一个分号构成
#include<stdio.h>
int main(){
.......
x=a+2; 表达式语句
.......
return 0;
}
6)空语句:一行中存在一个字符且为分号
#include<stdio.h>
int main(){
.......
; 空语句
.......
return 0;
}
7)复合语句:用{}把一些语句和声明括起来构成复合语句(又称语句块)
#include<stdio.h>
int main(){
.......
if(a>b){
......
int x = 2; 复合语句
......
}
.......
return 0;
}
8)赋值语句:给变量赋予内容的语句称为赋值语句,赋值符号为“=”
#include<stdio.h>
int main(){
.......
int a = 3;
int b;
b=1;
b=a;
.......
return 0;
}
9)符合赋值运算符:+=、-=、/=、*=、%=
10)赋值表达式:由赋值运算符将一个变量和一个表达式连接起来的式子称为“赋值表达式”,它的一般形式为:
<变量><赋值运算符><表达式>
#include<stdio.h>
int main(){
.......
x = 2 < 3;
x =0 ;
x = y = 3;
.......
return 0;
}