1.const关键字
(1)变量声明为 const
,意味着该变量的值在初始化后不能被修改。
(2)与指针一起使用,可以指定指针指向的内容是常量或指针本身是常量(即无法通过该指针修改它所指向的变量)。
2.void *p -----万能指针(降低程序耦合性);
(1)不能进行指针运算;
(2)
3(1).指针可以进行比较(地址值比较);
(2)指针不能求和;
(3)两个指针基类型相同才可进行差运算;
二、快速排序
(1)算法复杂度nlog2n;
(2)
二、返回指针值的函数
1.一般形式
基类型 * 函数名(参数列表)
2.返回指针值的函数可以用于管理动态内存、传递数据结构等。
三、动态内存分配
1malloc: void* malloc(size_t size)
用于动态内存分配的一个标准库函数。它的全称是 "memory allocation",用于在程序运行时请求一定数量的内存,并返回一个指向这块内存的指针。
(2)p为申请空间的地址不能修改,否则销毁空间时会出错;
2 free(p).用于释放以前通过动态内存分配函数,销毁空间;
3.realloc void* realloc(void* ptr, size_t new_size);
用于重新分配已分配的内存块的大小。它可以增加或减少原有内存的大小,并返回一个新的指针。如果重新分配成功,原有的内容会被保留,超出部分的内存会被释放。
4.calloc void* calloc(size_t num, size_t size);
用于分配内存并初始化为零。
5.reallocarray void* reallocarray(void* ptr, size_t nmemb, size_t size);
主要用于动态内存管理。该函数结合了 realloc
和 calloc
的功能,通常用于扩展一个已经分配的数组,通过重新分配内存来实现,同时确保总分配的大小不会溢出。