1.宏
1.宏是代码的替换,中间不进行任何数据计算的操作
2.能加括号就加括号
1.1带参宏与函数的区别
1.函数有参数类型、返回值、调用的概念
2.带参宏只是代码的替换
3.带参宏会让程序代码体积增大
4.带参宏没有传参调用的过程,程序运行速度更快
2.指针
指针可以直接访问内存可以操作硬件
2.1地址
地址:用来区分内存中不同字节的编号
2.2指针
地址就是指针
2.2指针变量
变量里面存放了一个指针,称作指针变量
2.3 &与*
&:只能操作左值(变量)
* :只能操作指针类型
&num 获得num的首地址(int *)
*&num:获得&num地址中的值(int)
2.4指针变量的定义
int *p = NULL;
所有的指针变量占8个字节
间接访问:通过变量在内存中的地址访问变量空间
直接访问:变量名访问
2.5常见的指针操作
p = &b:将b的地址放进p
*p=b:将b的值给p对应的地址
p = q 将q中的地址给p中
*p = *p:将q中地址对应的值赋给p中的对应的地址
2.6指针的算数运算
p++:向内存高地址偏移指向数据类型大小个字节空间
p--:向内存低地址偏移指向数据类型大小个字节空间
p-q 要除指针类型
*p++ ====== 先*p再p++
2.7指针作为函数参数
可以改变实参
int Abc(int*a,int*b)
{
.......;
}
Abc(&a,&b);
1.封装一个函数,完成传入两个数值,获得这两个数值的最大公约数和最小公倍数
2.求出数组a[N][N]中主对角线最大值和辅对角线最小值