初学c语言后整理的思维导图及大纲。
初识C语言
数据类型[1]
char 字符
1 byte
int 整形
4 byte
long 长整型
8 byte
longlong 更长整型
8 byte
short 短整型
2 byte
float 浮点型
4 byte
double 双精度浮点型
8 byte
变量
定义方法 数据类型+变量名称+赋值
分类[2]
全局变量
定义在代码块{}外的
局部变量
定义在{}内的
变量的使用
加法
生命周期及作用域
局部变量的作用域是变量所在的局部范围 全局变量的作用域是整个工程
常量
字面常量
const修饰的常变量
#define定义的标识符常量
枚举常量
进制转换
十进制转化为其他进制
短除法
其他进制转化为十进制
权重法
输出类型
%d 以整形输出 %s 以字符串输出 %c 以字符输出 %p 以地址输出 %f 以小数输出
字符串[3]
由双引号引起来的一串字符称为字符串
转义字符
选择语句
if () ............; else ............;
循环语句
while () { .........; } if () .........;
函数[4]
int add (int x,int y); { int sum=0; sum=x+y; return sum; } int main () { int a=0; int b=0; scanf("%d%d",%a,%b); int su=add(a,b); return 0; }
数组[5]
创建方法:int(元素类型) arr[元素个数]={x,y,z}; 若大括号中元素个数小于方括号中数字,则为不完全初始化,剩余为零。
数组用下标访问。从零开始。arr[下标]
打印数组数用循环
计算数组元素个数
int n = sizeof(arr)/sizeof(arr[0]);
操作符[6]
/ 整除
/ 整除 (若想得到小数,/前后至少有一个是小数)
移动操作符
<< 左移操作符 移动的是二进制位 如上图所示 补的都是0 >>右移操作符
复合赋值符
复合赋值符: a=a+3 ==> a+=3 a=a%3 ==> a%=3
!逻辑取反
!逻辑取反 0表示假 非0就是真 !把真变假,把假变真。 使用: if (a) .... if (!a) ....
~按二进制位取反
~按二进制位取反(把所有二进制中的数字1变0,0变1) 整数a 0 二进制表示:00000000000000000000000000000000 ~a:11111111111111111111111111111111 整数在内存中储存的是补码 %d打印出的是源码 一个整数在二进制表示有三种:1.原码 2. 反码 3.补码 -1:二进制序列: 100000000000000000000000001 8*4(原码) 111111111111111111111111110 符号位不变,其余取反(反码) 111111111111111111111111111 反码+1(补码) 针对负数,正数原反补相同。
++ --
前置:先++,后使用
后置:先使用,后++
&& 逻辑与
一假全假
|| 逻辑或
一真全真
条件操作符(三目操作符)
x?y:z 若x成立,输出y 若x不成立,输出z
逗号表达式
从左向右依次计算,结果为最后一个表达式结果
[] 下标引用操作符
引用数组中某个元素
()函数调用操作符
关键字[7]
extern 申明外部符号
register 寄存器关键字
大量频繁使用的数据放在寄存器,提高效率 register int num =000;
signed 有符号的
unsigned 无符号的
static 静态的
修饰局部变量 (静态局部变量)
static修饰局部变量改变了变量的生命周期 让静态局部变量出了作用域依然存在,到程序结束,生命周期才结束。
修饰全局变量
使得这个全局变量只能在自己所在的源文件使用,其他源文件不能用。
修饰函数
使得这个函数只能在自己所在的源文件使用,其他源文件不能用。
typedef 重命名关键字
#define 定义常量和宏
定义标识符常量
定义宏(替换)
错误
更正:
指针
内存
32位/64位 32/64根地址线--物理线--通电--1正电/0负电
32位机器:2^32种编号,成为地址 可以管理2^32个内存单元 一个内存单元占1 byte
指针
储存地址:int * pa=&a;pa叫做指针变量 *说明pa是指针变量 int说明pa指向的对象是int类型;
打印地址:printf("%p\n",&a);
应用:*pa=20 *为解引用操作符,*pa就是通过pa里面的地址,找到a
指针大小相同都为4 byte 大小取决于地址有多大 32位--32个bit做成的地址所以为4 byte
结构体 struct[8]
struct stu { char name[20]; int age; double score; };
结构体的创建和初始化 int main() { struct stu s={"张三",20,85.5}; printf("%s %d %lf\n",s.name,s.age,s.score); return 0; } 法二 printf("%s %d %lf\n",(*ps).name,(*ps).age,(*ps).score); 法三 printf("%s %d %lf\n",ps->name,......); (结构体指针->成员变量)
结构体变量.成员变量即可调用
对结构体取地址:struct stu *ps=&s;
PDF版下载方式:
「初识C语言 思维导图.pdf」https://www.aliyundrive.com/s/9fTWqjzdfbo 提取码: 53uo
哪有广告啊!!!