本章内容是对C语言的内容的大致框架:
包括数据类型;变量、常量;字符串+转义字符+注释;选择语句;循环语句;函数;数组;操作符;常见关键字;define定义常量和宏;指针;结构体
一、数据类型:
C语言的数据类型包括基本类型(数值类型、字符类型)、构造类型(数组、结构体、共用体、枚举类型)、指针类型、空类型
1、主要介绍下基本类型(内置类型):
char //字符数据类型 1字节
short //短整型 2字节
int //整型 4字节
long //长整型 4字节
long long //更长的整型 8字节
float //单精度浮点数 4字节
double //双精度浮点数 8字节
2、变量定义:开辟内存空间+数据(赋值/初始化)(数据的类型决定开辟空间的大小)
3、程序运行第一步先将程序加载到内存上,再由CPU运行
4、sizeof() --------->不是函数调用
二、变量、常量:
1、变量:
(1)定义变量的方法:
int age=150;
float weight = 45.5f;
char ch=‘W’;
(2)变量的分类:
当局部变量和全局变量同名的时候,局部变量优先使用!
局部变量和全局变量(这里由生命周期和作用域的知识点,之后学习的时候要注意区分)
1)作用域:体现变量可以被使用的范围
a、局部变量的作用域是变量所在的局部范围
b、全局变量的作用域是整个过程
2)生命周期:变量的创建到变量的销毁之间的一个时间段
a、局部变量的生命周期是:进入作用域生命周期开始,出作用域生命周期结束
b、全局变量的生命周期是:整个程序的生命周期
2、常量:
C语言中的常量分为以下几种:
(1)字面常量; 100;
(2)const 修饰的常变量; const float pai = 3.14;
(3)#define 定义的标识符常量; #define MAX 10 //注意这个后边不带;号(分号)
(4)枚举常量;enum sex { MALE,FEMALE,SECRET}; //注意枚举花括号里边的内容用逗号分隔
三、字符串+转义字符+注释
1、字符串:
C语言字符串的结束标志是一个 \0 的转义字符。在计算字符串长度的时候 \0 是结束标志,但不算做字符串内容
2、转义字符:
(1)先列举几个特殊的转义字符:
\n :换行(回车换行)
\r :回车
\t :水平制表符
(2)\n :单反斜杠:将n转义成换行(特殊字符)
\\n :双反斜杠:将特殊字符转换成n(普通字符)
(3)‘\0’ 就是0 ‘ 0 ’不是数字0,是字符0 ————>>>>>>字符本身也是整数
3、注释:
四、选择语句:
五、循环语句:
Sleep()休眠 / 以毫秒打印
Sleep(100);间隔100ms休眠一次 ————>>>>>>>可以让结果间隔打印
六、函数:
七、数组:是一组相同类型元素的集合
数组可以被整体初始化,但不能被整体赋值
八、操作符:
1、算术操作符:+、-、*、/、%
2、移位操作符:>> <<
3、位操作符:&(按位与)(在求整数二进制1的个数时会用到) ^(异或) |(按位或)
4、赋值操作符:= += -= *= /= &= |= ^= >>= <<=
5、单目操作符:
!(逻辑反操作) - + &(取地址) sizeof(求操作数类型的长度(以字节为单位)) ~(对一个数的二进制按位取反) -- ++ *(间接访问操作符(解引用操作符)) ()
6、关系操作符:> >= < <= != ==
7、逻辑操作符: && ||
8、条件操作符:exp1 ? exp2 : exp3
9、逗号表达式:,
10、下标引用、函数调用和结构成员:[ ] () . ->
九、常见关键字:
1、typedef :类型重命名;(常用于结构体)
例如:typedef unsigned int uint_32 -------->之后可以用uint_32定义unsigned int类型的变量
2、关键字:static(用来修饰变量和函数)
静态局部变量、静态全局变量、静态函数
(1)修饰局部变量:
static修饰局部变量改变了变量的生命周期(变成全局变量),让静态局部变量出了作用域依然存在(作用域不变),到程序结束
(2)修饰全局变量:
static修饰全局变量时,使这个全局变量只能在本源文件中使用
(3)修饰函数:
static修饰函数时,使得这个函数只能在本源文件内使用
十、#define 定义变量和宏:
这里必须记得:宏定义不以;结尾!!!!!!!!!
十一、指针:
内存访问的是字节;
指针是变量,用来存放地址,打印时 printf(" %p\n",&num);%p以地址的形式打印;
地址打印时,只打印出该操作数的最小的地址;
解引用:*num 表示所指向的目标,不用再指向该目标的地址
32位地址下,指针大小位4个;64位地址下,指针大小位8个
十二、结构体:
数组里边可以放结构体;
定义:
struct Stu {
char name[20];
int age;
};//注意结构体的最后一定要有;号
初始化:
struct Stu s={“张三”,20};
打印:
printf(“name=%s age=%d”,s.name,s.age);
结构体可以初始化,不可以整体赋值(与数组一样)