C语言void关键字详解:无类型与void指针用法
于C语言里头“void”属于一种特殊的数据类型其表明“没有类型”具体来讲当我们声明一个函数的返回值类型为“void”之际我们所指的是该函数不返回任何值此外地我们还能够运用“void”指针来表示指向任何类型的指针。1、void的含义void乃是C语言里的关键字其作用是用来表示“没有类型”它能够被运用在如下的两种情形当中(1)声明函数的返回值类型为void例如void printHello();于上述代码里头我们宣告了一个称作“printHello”的函数它不会返回任何数值。(2)声明指针类型为void。例如void *ptr;在上面所写的代码当中我们定义了一个指针这个指针名为“ptr”它能够指向任何一种类型的数据。2、void的用途(1)声明函数的返回值类型为void在C语言里头我们时常要去定义一些函数这些函数仅仅执行某些举措却并不返回任何数值比如说我们有可能要撰写一个函数用来打印一些讯息或者去修改某些全局变量的值在这样的情形之下我们能够把函数的返回值类型声明成“void”。下面是一个例子void printHello() { printf(Hello, world!\n); }于上述代码里头我们界定了一个称作“printHello”的函数此函数并不返回任何数值而是去打印一则讯息。当我们对这个函数予以调用之际它仅仅会施行打印行为而不会返回任何数值。(2)声明指针类型为void处于C语言范畴内我们时常会借助指针去引用各异类型的数据。比如说我们有可能要撰写一个函数用以交换两个整数的值void swap(int *a, int *b) { int temp *a; *a *b; *b temp; }在上述代码里头我们定义了一个函数它被称为“swap”这个函数接纳两个指向整数的指针并且会将它们所指向的值进行交换。然而要是我们期望编写一个具备通用性的交换函数让它能够应对各种各样不同类型的数据那该采取怎样的办法呢于这般情形之下我们能够运用“void”指针用以展现指向任意类型的 pointer举例而言void swap(void *a, void *b, size_t size) { char temp[size]; memcpy(temp, a, size); memcpy(a, b, size); memcpy(b, temp, size); }在之前的那段代码里头我们设定了一个称作“swap”的函数它接纳两个指向任意类型数据的指针并且将这两个指针所指向的值进行互换留意于这个函数当中我们运用了“memcpy”函数去复制内存块。3、使用void进行编程以下是一个示例程序它展示怎样借助“void”指针去达成通用的交换函数#include #include void swap(void *a, void *b, size_t size) { char temp[size]; memcpy(temp, a, size); memcpy(a, b, size); memcpy(b, temp, size); } int main() { int a 10; int b 20; printf(Before swap: a%d, b%d\n, a, b); swap(a, b, sizeof(int)); printf(After swap: a%d, b%d\n, a, b); return 0; }我们在上面代码里定义了一个函数名为“swap”在“main”函数中对它进行调用要注意调用“swap”函数之际我们得把指针转变为“void”指针除此之外我们还得传递要交换的数据类型的大小。这是程序运行的情况
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2490545.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!