c语言中void的用法的用法你知道吗?下面小编就跟你们详细介绍下c语言中void的用法的用法,希望对你们有用。

c语言中void的用法的用法如下:

void指针是什么?

void指针一般被称为通用指针或泛指针,它是C关于“纯粹地址(raw address)”的一种约定。void指针指向某个对象,但该对象不属于任何类型。请看下例:

int    *ip;

void    *p;

在上例中,ip指向一个整型值,而p指向的对象不属于任何类型。

在C中,任何时候你都可以用其它类型的指针来代替void指针(在C++中同样可以),或者用void指针来代替其它类型的指针(在C++中需要进行强制转换),并且不需要进行强制转换。例如,你可以把char *类型的指针传递给需要void指针的函数。

什么时候使用void指针?

当进行纯粹的内存操作时,或者传递一个指向未定类型的指针时,可以使用void指针。void指针也常常用作函数指针。

有些C代码只进行纯粹的内存操作。在较早版本的C中,这一点是通过字符指针(char *)实现的,但是这容易产生混淆,因为人们不容易判断一个字符指针究竟是指向一个字符串,还是指向一个字符数组,或者仅仅是指向内存中的某个地址。

例如,strcpy()函数将一个字符串拷贝到另一个字符串中,strncpy()函数将一个字符串中的部分内容拷贝到另一个字符串中:

char  *strepy(char'strl,const char *str2);

char  *strncpy(char *strl,const char *str2,size_t n);

memcpy()函数将内存中的数据从一个位置拷贝到另一个位置:

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()函数要拷贝的是存放在structthingie结构体中的某种对象op_dest和p_src都是指向structthingie结构体的指针,memcpy()函数将把从p_src指向的位置开始的sizeof(stuctthingie) *numThingies个字节的内容拷贝到从p_dest指向的位置开始的一块内存区域中。对memcpy()函数来说,p_dest和p_src都仅仅是指向内存中的某个地址的指针。

c语言中void函数,c语言中void的用法相关推荐

  1. c语言中rewind函数_C语言中的rewind()函数与示例

    c语言中rewind函数 C中的rewind()函数 (rewind() function in C) The rewind() function is defined in the <stdi ...

  2. c语言如何调用void函数返回值,C void函数,返回值

    没有表达式的return语句: void func(void) { return; } 在void函数中是完全合法的.带表达式的return语句的合法性取决于您正在使用的C语言的版本. 1990 C标 ...

  3. c语言中exit函数作用,c语言中exit函数 c语言中exit与break区别

    C语言中exit();怎么用? exit() 结束当前进程/当前程序/,在整个程序中,只要调用 exit ,就结束. return() 是当前函数返回,当然如果是在主函数main, 自然也就结束当前进 ...

  4. void函数返回值_(*void(*)()0)() 是什么

    (*void(*)()0)() 代码分析 这是啥 这行代码,是我今天在看<C陷阱与缺陷>时看到的,一开始很不能理解.慢慢上网摸索一些后,大致理解了,现在来分享一下我所理解的这行代码. 1. ...

  5. c语言memcopy_C语言中memcpy 函数的用法详解

    C语言中memcpy 函数的用法详解 memcpy(内存拷贝函数) c和c++使用的内存拷贝函数,memcpy函数的功能是从源src所指的内存地址的起始位置开始拷贝n个字节到目标dest所指的内存地址 ...

  6. c语言中memcpy函数_带有示例的C中的memcpy()函数

    c语言中memcpy函数 memcpy()函数 (memcpy() function) memcpy() is a library function, which is declared in the ...

  7. c语言的point函数,C语言中friend友元函数详细解析

    C语言中friend友元函数详细解析 友元函数是可以直接访问类的私有成员的非成员函数.它是定义在类外的普通函数,它不属于任何类,但需要在类的定义中加以声明,声明时只需在友元的名称前加上关键字frien ...

  8. java中flush函数作用_Java语言中flush()函数作用及使用方法详解

    最近在学习io流,发现每次都会出现flush()函数,查了一下其作用,起作用主要如下 //------–flush()的作用--------– 笼统且错误的回答: 缓冲区中的数据保存直到缓冲区满后才写 ...

  9. php seekdir,C++_详解C语言中telldir()函数和seekdir()函数的用法,C语言telldir()函数:取得目录流 - phpStudy...

    详解C语言中telldir()函数和seekdir()函数的用法 C语言telldir()函数:取得目录流的读取位置头文件: #include 定义函数: off_t telldir(DIR *dir ...

最新文章

  1. 奇葩的报表(连更-对,昨天发生大事了。。。。)
  2. 虚拟机上的Ubuntu如何无线上网
  3. Attribute is missing the Android namespace prefix
  4. 一文告诉你 Event Loop 是什么?
  5. 信安教程第二版-第21章网络设备安全
  6. mysql故障切换_MySQL故障切换笔记之应用无感知设计详解
  7. FFMPEG关键结构体
  8. 初识window phone 7程序
  9. 在团队中我的索引卡任务
  10. CString与LPCWSTR、LPSTR、char*、LPWSTR等类型的转换
  11. html css调用自定义字体,html css使用特殊自定义字体避免侵权
  12. SaaSBase:什么是数云麒麟CRM?
  13. vue滑块滑动校验,兼容移动端/pc端
  14. (十)损失函数与反向传播
  15. 三菱凌云3故障代码_上海三菱凌云2故障代码
  16. 2005高考作文题目汇总
  17. rbr mysql_Lossless RBR for MySQL 8.0?
  18. python修改表格居中_Python使用openpyxl对xlsx表格合并单元格、设置单元格样式的操作...
  19. [1]: the default discovery settings are unsuitable for production use; at least one of [discovery.se
  20. 智能工厂建设整体解决方案

热门文章

  1. ios开发学习笔记(这里一定有你想要的东西,全部免费
  2. Yarn中map、reduce任务运行容器YarnChild分析
  3. http range 用法与说明
  4. 移动光驱接入WIN10电脑提示“无法识别的USB设备-跟这台计算机连接的前一个USB设备工作不正常,Windows无法识别它。”
  5. 使用Unity HDRP制作的影视/游戏/产品
  6. 爬取上市公司第一大股东持股比例
  7. opencv 学习笔记——读入一张图片,并将其转为灰度图
  8. Prism WPF Region
  9. tableView 如何对整个 Section 设置圆角
  10. JAVA学习10_20学习总结