知识点,比较零碎。
T * p;
p的类型 T *
指针用法:char ch1 = 'A';
char * pc = &ch1; //pc指向变量ch1
&取地址符
指针作用:有了自由访问内存空间的手段
在写一些偏底层的程序的时候,需要自由访问内存空间,比如驱动程序。(比如病毒)
运算:
1.比较大小
2.加减
3.加减整数
4.自增自减
5.用下标运算符[]进行运算
如何访问int型变量a前面的一个字节?
int a;
char * p = (char * ) &a;
--p;
强制转换为char就可以了
指针做函数参数:
void swap(int *p1,int *p2);
swap(&m,&n);
数组的名字是一个指针常量,指向数组的起始地址
不能对其进行赋值
T *p 和 T p[]等价
指针和二维数组:
T a[m][n]
a[i]就是一个一维数组
指向指针的指针
T ** p;
p是指向指针的指针,p指向的地方存着一个T *类型的指针
*p 的类型是 T *
字符串操作的库函数:https://zh.cppreference.com/w/cpp/string/byte
void指针
可以用任何类型的指针对void类型指针进行初始化
*p无定义 ++p,--p,p+=n,p+n,p-n等均无定义
指向函数的指针
!!这就是sort函数用到的,可以传入一个排序函数cmp作为参数