前言
指针赋值概念理解,指针指向内容赋值
1.const指针
const 关键字 常量(只读) readonly
1.const int *p;
2.int const *p;
3.int *const p;
4.const int *const p;
5.int const *const p;
1和2是等价的
const修饰 *p,指针变量p的值可以改变,但不能利用指针修改指向空间中的值
3
const修饰 p,指针变量p的值不能改变,但可以利用指针变量p修改指向空间中的值
一定要对指针初始化
4和5是等价的
const修饰p和*p,指针变量p的值不能改变,也不能利用*p改变直系那个空间中的值
一定要初始化
2.void
void a;
高精度
int *p;
double *p;
char *p;
低精度
void *p;
p保存内存地址
int *、double *、char * 转换为 void * 需要强制类型转换
void *转换为int *、double *、char *不需要强制类型转换
strcpy 拷贝字符串
memcpy 拷贝一段内存空间
3.函数指针和指针函数:
指针函数:是函数,函数的返回值类型是指针类型
函数指针:是指针,指针指向了函数
1.指针函数:
局部变量的地址不能返回,因为局部变量会随函数作用域结束被回收,虽然能够获得返回的地址,但地址对应的空间已经被回收过了
将函数的返回值作为下一个函数的参数
2.函数指针:
int (*Fun)(int a, int b) = NULL;
定义函数指针变量Fun,占8个字节空间,指向int返回值有2个int参数的函数
综合函数调用,只改变取用函数来实现从小到大排序
改为descompare来实现由大到小排序
头文件取用<stdlib.h>取用abs(Num)(求当前数的绝对值)来进行由小到大排序
由大到小