c语言中void函数,c语言中void的用法
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的用法相关推荐
- c语言中rewind函数_C语言中的rewind()函数与示例
c语言中rewind函数 C中的rewind()函数 (rewind() function in C) The rewind() function is defined in the <stdi ...
- c语言如何调用void函数返回值,C void函数,返回值
没有表达式的return语句: void func(void) { return; } 在void函数中是完全合法的.带表达式的return语句的合法性取决于您正在使用的C语言的版本. 1990 C标 ...
- c语言中exit函数作用,c语言中exit函数 c语言中exit与break区别
C语言中exit();怎么用? exit() 结束当前进程/当前程序/,在整个程序中,只要调用 exit ,就结束. return() 是当前函数返回,当然如果是在主函数main, 自然也就结束当前进 ...
- void函数返回值_(*void(*)()0)() 是什么
(*void(*)()0)() 代码分析 这是啥 这行代码,是我今天在看<C陷阱与缺陷>时看到的,一开始很不能理解.慢慢上网摸索一些后,大致理解了,现在来分享一下我所理解的这行代码. 1. ...
- c语言memcopy_C语言中memcpy 函数的用法详解
C语言中memcpy 函数的用法详解 memcpy(内存拷贝函数) c和c++使用的内存拷贝函数,memcpy函数的功能是从源src所指的内存地址的起始位置开始拷贝n个字节到目标dest所指的内存地址 ...
- c语言中memcpy函数_带有示例的C中的memcpy()函数
c语言中memcpy函数 memcpy()函数 (memcpy() function) memcpy() is a library function, which is declared in the ...
- c语言的point函数,C语言中friend友元函数详细解析
C语言中friend友元函数详细解析 友元函数是可以直接访问类的私有成员的非成员函数.它是定义在类外的普通函数,它不属于任何类,但需要在类的定义中加以声明,声明时只需在友元的名称前加上关键字frien ...
- java中flush函数作用_Java语言中flush()函数作用及使用方法详解
最近在学习io流,发现每次都会出现flush()函数,查了一下其作用,起作用主要如下 //------–flush()的作用--------– 笼统且错误的回答: 缓冲区中的数据保存直到缓冲区满后才写 ...
- php seekdir,C++_详解C语言中telldir()函数和seekdir()函数的用法,C语言telldir()函数:取得目录流 - phpStudy...
详解C语言中telldir()函数和seekdir()函数的用法 C语言telldir()函数:取得目录流的读取位置头文件: #include 定义函数: off_t telldir(DIR *dir ...
最新文章
- 奇葩的报表(连更-对,昨天发生大事了。。。。)
- 虚拟机上的Ubuntu如何无线上网
- Attribute is missing the Android namespace prefix
- 一文告诉你 Event Loop 是什么?
- 信安教程第二版-第21章网络设备安全
- mysql故障切换_MySQL故障切换笔记之应用无感知设计详解
- FFMPEG关键结构体
- 初识window phone 7程序
- 在团队中我的索引卡任务
- CString与LPCWSTR、LPSTR、char*、LPWSTR等类型的转换
- html css调用自定义字体,html css使用特殊自定义字体避免侵权
- SaaSBase:什么是数云麒麟CRM?
- vue滑块滑动校验,兼容移动端/pc端
- (十)损失函数与反向传播
- 三菱凌云3故障代码_上海三菱凌云2故障代码
- 2005高考作文题目汇总
- rbr mysql_Lossless RBR for MySQL 8.0?
- python修改表格居中_Python使用openpyxl对xlsx表格合并单元格、设置单元格样式的操作...
- [1]: the default discovery settings are unsuitable for production use; at least one of [discovery.se
- 智能工厂建设整体解决方案
热门文章
- ios开发学习笔记(这里一定有你想要的东西,全部免费
- Yarn中map、reduce任务运行容器YarnChild分析
- http range 用法与说明
- 移动光驱接入WIN10电脑提示“无法识别的USB设备-跟这台计算机连接的前一个USB设备工作不正常,Windows无法识别它。”
- 使用Unity HDRP制作的影视/游戏/产品
- 爬取上市公司第一大股东持股比例
- opencv 学习笔记——读入一张图片,并将其转为灰度图
- Prism WPF Region
- tableView 如何对整个 Section 设置圆角
- JAVA学习10_20学习总结