指针
来源:互联网 发布:赚钱的软件 编辑:程序博客网 时间:2024/06/08 19:49
void指针:
void指针一般被称为通用指针或泛指针,它是C语言关于"纯粹地址“的一种约定。void指针指向某个对象,但该对象不属于任何类型。请看下例。
int * ip;void *p;
在上例中,ip指向一个整型值,而p指向的对象不属于任何类型。
在C语言中,任何时候都可以用其他类型的指针来代替void指针,或者用void指针来代替其他类型的指针,并且不需要进行强制转换。例如,可以把char*类型的指针传递给需要void指针的函数。
当进行纯粹的内存操作时,或者传递一个指向未定类型的指针时,可以使用void指针。void指针也经常用作函数指针。
有些C代码只进行纯粹的内存操作。在较早版本的C语言程序中,这一点是通过字符指针"char*"实现的,但是这容易产生混淆,因为人们不容易判定一个字符指针究竟是指向一
个字符串,还是指向一个字符数组,或者仅仅是指向内存中的某个地址。
例如,strcpyo函数将一个字符串复制到另一个字符串中,Slcpyo函数将一个字符串中的部分内容复制到另一个字符串中。
char *strcpy(char'strl,const char *str2);
char *strncpy(char *strl, const char*str2, siz.e_t n);
memcpyo函数将内存中的数据从一个位置复制到另一个位置。
void *memcpy(void *addrl, void *addr2,size_t n);
char *strncpy(char *strl, const char*str2, siz.e_t n);
memcpyo函数将内存中的数据从一个位置复制到另一个位置。
void *memcpy(void *addrl, void *addr2,size_t n);
memcpy()函数使用了void指针,以说明该函数只进行纯粹的内存复制,包括NULL字符(零字节)在内的任何内容都将被复制。请看下例。
#include"thingie, h" /*defines struct thingie */
struct thingie * p_src * p_dest;
/ *... * /
memcpy{p_dest, p_src ,sizeof (struct thingie ) * numThingies );
在上例中,memcpy()函数要复制的是存放在struct thingie结构体中的某种对象op_dest
和p_src都是指向struct thingie结构体的指针,memcpy()函数将把从p_src指向的位置开始的"sizeof(stuct thingie)*numThingies"个字节的内容复制到从p_dest指向的位置开始的一块内存区域中。对memcpy()函数来说,p_dest和p_src都仅仅是指向内存中的某个地址的指针。
#include"thingie, h" /*defines struct thingie */
struct thingie * p_src * p_dest;
/ *... * /
memcpy{p_dest, p_src ,sizeof (struct thingie ) * numThingies );
在上例中,memcpy()函数要复制的是存放在struct thingie结构体中的某种对象op_dest
和p_src都是指向struct thingie结构体的指针,memcpy()函数将把从p_src指向的位置开始的"sizeof(stuct thingie)*numThingies"个字节的内容复制到从p_dest指向的位置开始的一块内存区域中。对memcpy()函数来说,p_dest和p_src都仅仅是指向内存中的某个地址的指针。
0 0
- 指针
- 指针
- 指针
- 指针
- 指针
- 指针
- 指针
- 指针
- 指针
- 指针
- 指针
- 指针
- 指针
- 指针
- 指针
- 指针
- 指针
- 指针
- WEB全栈笔记之弹出层
- 十个最小的连续自然数,并且这十个数都为合数(非素数)
- JEECG 避免表单重复提交
- Redis的安装和使用之一 -----Redis相关运用
- win10怎么彻底卸载oracle11g
- 指针
- linux exercise16
- 指定Uri文件图片进行压缩,如何避开OOM?
- linux awk一个小小的实例
- JAVA学习第一天(JDK PATH 和 CLASSPATH环境变量的作用及其配置)
- Linux驱动中建立动态映射来实现操作寄存器
- 平方数
- stl 知识简单汇总
- bootstrap仿Ghost开源博客主页