ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

Linux环境下c语言的指针3

Linux环境下c语言的指针3 一.用指针写字符串函数函数原型strcpychar *Strcpy(char *dest, const char *src)指针写法注意由于strcpy是会返回一个值所以可以连续拷贝链式结构strcpy(s3,strcpy(s2,strcpy(s1,hello)))strncpychar *strncpy(char *dest, const char *src, size_t n)与strcpy作用一样多了一个n控制拷贝多少个,如果n大于拷贝的数量则直到拷贝完成即可注意拷贝结束后目标字符串需要补上一个’\0’strcatchar *Strcat(char *dest, const char *src)将 src 字符串追加拷贝到 dest 末尾。先移动 dest 指针找到 dest 末尾的\0从这个位置开始拷贝 src 的每个字符覆盖原来的\0拷贝完 src 所有有效字符之后再在末尾添加\0。指针写法strncatchar *Strncat(char *dest, const char *src, size_t n)与strcat一样多了一个n控制拷贝多少个直到n结束指针写法strcmpint Strcmp(const char *s1, const char *s2)比较两个字符串大小指针写法strncmpint Strncmp(const char *s1, const char *s2, size_t n)由n控制比较多少个字符注意判断条件n要提取-1否则当n结束时指针指向后一个导致比较字符数出错指针写法memcpyvoid *memcpy(void *dest, const void *src, size_t n)将src空间上n个字节的数据拷贝到dest所指向的空间指针写法void * 万能指针 用处1.可以接受任意类型的地址注意: 一般用于形参的设计 可以接受任意类型地址2.想通过void * 类型的指针访问数据 需要强制指针类型注意如果不转换会报错此时报错 原先void是空类型4.如果要访问需要将 void *类型指针强转为 具体类型的指针二.通过指针变量访问到字符串常量区指针数组字符串常量区只读段 写“abc”这种字面量存放在内存的只读区域。只能用const char*指针指向它不能修改里面的字符修改会段错误。例如char * s1 “hello1”; //s1数据类型 char *char * s2 “hello2”;char * s3 “hello3”;char * s4 “hello4”;这四个可以作为指针数组本质一个数组数组里每一个元素都是指针变量与数组指针的区分不带括号char *arr[] → 数组指针数组加括号(*p) → 指针数组指针注意1.作为指针数组如果需要传递参数需要二级指针例如char** p接收2.chararr[]作为函数形参时会退化成 char 二级指针代码示例
返回列表