快排(qsort):
先设置基准数(begin),从右往左找,第一个比基准数小的数,从左往右找,第一个比基准数大的数,互换两个数,重复刚才的操作,直到p ,q 相遇,内层循环结束后,将p,q所指的元素与基准数交换
两个指针间不能进行加法,乘除求余运算
两个指针间减法(基类型必须一致),结果为int,其值为两个之间相差n个基类型
字符型
const :无法通过直接访问改变,但可以根据间接访问改变值
const int *p : 在指针变量前加const,修饰的是 *p(i),无法通过该指针修改它所指向的变量( i )(即只能读,不能写)
“Hello”为匿名数组,%p输出地址值为首地址H的地址
“Hello”在字符串常量区,只能读,不能写,*p无法修改
万能指针:void *p;(降低程序耦合性)
万能指针不能进行指针运算
内存拷贝:
在大字符串里找子字符串:
int subStr(const char *s, const char *sub)
返回指针值的函数
返回值为指针的函数,不能返回局部变量(动态生存区,已被销毁)
加static将变量动态生存期变为静态生存期
malloc:
分配动态内存,参数为,需要的内存空间大小的字节,申请的字节一定是连续的,返回需要空间的首字节地址(申请的空间在堆区)
如果申请成功,返回空间的首字节地址,申请失败,返回一个空指针
需要手动归还,归还与申请的首地址要相同,释放结束后,置于空指针(NULL)
未销毁,称为内存泄漏