首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

【C语言】void * 指针类型及其使用

然而,C++ 还提供了一种特殊类型的指针——void *,即“无类型指针”。与其他类型的指针不同,void * 可以指向任何类型的数据,这使得它在某些特定场景下非常有用。...C语言 一、void * 指针概述 void * 是 C 和 C++ 中的一种特殊指针类型,常被称为“通用指针”或“无类型指针”。它的主要特点是可以指向任何类型的数据。...例如,链表、栈和队列等数据结构可以使用 void * 来存储任意类型的元素。 四、小结 void * 指针在 C 和 C++ 中提供了灵活的方式来处理不同类型的数据。...如果你对 void * 或其他 C++ 特性有更多问题,欢迎随时提出! 学习C语言的建议 C语言作为一门经典的编程语言,具有非常高的性能和广泛的应用。...学习C语言时,你应该从以下几个方面入手: 数据类型和变量:了解常见的数据类型(如int、char、float等)以及如何声明和使用变量。

12910
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    c语言编程void什么意思,c语言中void啥意思?

    c语言中,void的意思是“无类型”,相应的“void *”为无类型指针,常用在程序编写中对定义函数的参数类型、返回值、函数中指针类型进行声明,其作用是对函数返回和参数的进行限定。...c语言中,void的意思是“无类型”,相应的“void *”为无类型指针,常用在程序编写中对定义函数的参数类型、返回值、函数中指针类型进行声明,其作用是对函数返回和参数的进行限定。...int *a=NULL; p=a; double *b=NULL; p=b; char c[16]={0}; p=c; void* 就像一张白纸,任何类型的指针都可以直接赋值给void *类型的指针;...典型应用 一void * memcpy(void *dest, const void *src, size_t len); void * memset ( void * buffer, int c, size_t...这里语法要求是必须的,void *类型转为其他类型必须强制类型转换。

    5.4K10

    c语言里void什么作用,C语言中void是什么意思?

    C语言中void是什么意思?...C语言中“void”表示为无类型,相应的“void *”为无类型指针,常用在程序编写中对定义函数的参数类型、返回值、函数中指针类型进行声明,其作用是对函数返回和参数的进行限定。...C语言关键字 auto :声明自动变量 break:跳出当前循环 case:开关语句分支 char :声明字符型变量或函数返回值类型 const :声明只读变量 continue:结束当前循环,开始下一轮循环...union:声明共用体类型 void :声明函数无返回值或无参数,声明无类型指针 volatile:说明变量在程序执行中可被隐含地改变 while :循环语句的循环条件 推荐教程:《C#》 发布者:全栈程序员栈长...while :循环语句的循环条件 推荐教程:《C#》 发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/144444.html原文链接:https://javaforall.c

    3.5K20

    再论c语言里面的void类型本质和NULL

    void类型本质 1编程语言类型: (1)编程语言分两种:强类型语言和弱类型语言(比如PHP..n它就是弱类型语言);强类型语言中所有的变量都有自己固定的类型,这个类型有固定的内存占用,有固定的 解析方法...(2)c语言就是典型的强类型语言,c语言中所有的变量都有明确的类型;因为c语言中的一个 变量都要对应内存中的一段内存,编译器需要这个变量的类型来确定这个变量占用内存的字节数和这一段内存的解析方法。...(3)但是c语言中可以有没有类型的内存;在内存还没有和具体的变量相绑定之前,内存就可以没有类型。...(4)void 类型使用时一般都是用void *,而不是仅仅使用void。 NULL 新媒体排版 1NULL在C/C++中的标准定义: (1)NULL不是C语言关键字,本质上是一个宏定义。... *)0        // 这里对应C语言的情况    #endif 解释:C++的编译环境中,编译器预先定义了一个宏_cplusplus,程序中可以用条件编译来判断当前的编译环境是C++的还是C的

    73330

    C语言 — void的用法解析

    文章目录 一、简介 二、用法 三、总结 一、简介 ​ void 中文翻译为”无类型”,有的也叫”空类型”。常用在程序中对定义函数的参数类型、返回值、函数中指针类型进行声明。...二、用法 首先应该注意一点的是void类型是不同于其他常见类型的,即void 类型不能够用来申明变量和常量。...void * /*无类型指针,也称为空指针,可以指向任何类型的数据 *注意一点:当我们需要使用void 类型的的指针变量去指向某一类型的变量的时候,必须要对其进行类型转换 */ 我们在定义一个指针变量的时候第一件事就是指定我们指针变量所指向的变量的类型...当然了,我们也可以进行强制类型转换,即使用括号进行类型转换,比如: int *p1; void *p2; p1 = (int *)p2; 从上面的例子可以看出,当我使用void去修饰指针的时候,这种通用类型的指针可以很方便的和其他类型的指针之间进行相关转换...对函数返回的限定; 对函数参数的限定; 三、总结 发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/144660.html原文链接:https://javaforall.c

    1.9K20

    【C语言】“void” 如何在 C 语言中开创无限可能

    C语言void关键字详解 void是C语言中的一个特殊关键字,具有多种用途。它可以表示没有返回值的函数、没有参数的函数参数列表、以及通用指针类型等。...以下是关于C语言void关键字的功能和用法的表格: void关键字的功能和应用 功能 详细描述 示例场景 常见用法 返回类型 函数的返回类型为 void 表示该函数不返回任何值。...1. void作为函数返回类型 在C语言中,void可以用作函数的返回类型,表示该函数不返回任何值。这通常用于执行操作而不需要返回结果的函数。...5. void与函数指针 在C语言中,函数指针可以指向具有特定签名的函数。void类型的函数指针表示指向不返回值的函数的指针。...理解并正确使用 void 对于编写高效、健壮的C语言代码至关重要。 9. 结束语 本节内容已经全部介绍完毕,希望通过这篇文章,大家对C语言 void 关键字区别有了更深入的理解和认识。

    23510

    C语言中的void的理解

    1 初学者对C/C++语言中的void及void指针类型不甚理解,因此在使用上出现了一些错误。本文将对void关键字的深刻含义进行解说,并 详述void及void指针类型的使用方法与技巧。...2.void的含义 void的字面意思是“无类型”,void *则为“无类型指针”,void *可以指向任何类型的数据。...*则不同,任何类型的指针都可以直接赋值给它,无需进行强制类型转换: void *p1; int *p2; p1 = p2; 但这并不意味着,void *也可以无需强制类型转换地赋给其它类型的指针...3.void的使用 下面给出void关键字的使用规则: 规则一 如果函数没有返回值,那么应声明为void类型 在C语言中,凡不加返回值类型限定的函数,就会被编译器作为返回整型值处理。...void的字面意思是”无类型”,void *则为”无类型指针”,void *可以指向任何类型的数据。 在C语言中,凡不加返回值类型限定的函数,就会被编译器作为返回整型值处理。

    1.5K20

    【C 语言】数据类型本质 ( void 关键字作用 | 数据类型封装 | 作为 参数 或 返回值 代表无 | void* 指针赋值与被赋值 | void 类型变量不存在 )

    文章目录 一、数据类型封装 二、作为 参数 或 返回值 代表无 三、void* 指针赋值与被赋值 四、void 类型变量不存在 一、数据类型封装 ---- 实现函数 的 底层函数开发者 , 不想将 底层的数据结构...这就意味着 函数调用者 不知道 该类型的结构 ; void 数据类型 的 字面含义 是 " 无类型 " , void* 指针 是 " 无类型指针 " , void* 指针 可以指向任何数据类型 ; 下面的...; 三、void* 指针赋值与被赋值 ---- C 语言中 , 对指针赋值时 , 只有 相同类型的指针 , 才能相互赋值 ; void* 作为 左值 可以 被赋值 任意类型的 指针 ; void* 作为...从数据概念角度理解 : C 语言程序中的 数据 , 必定属于某种 数据类型 ; void 数据类型代表空 , 就是没有类型的数据 ; 2....从分配内存角度理解 : C 编译器遇到一个数据类型 , 就要为其在栈内存中分配内存 , 遇到 void* 类型 , 这是指针类型 , 为其分配 4 字节存放指针即可 ; 遇到 void 类型 , 无法为其分配内存

    2.5K10

    C语言中的函数指针(*(void(*)())0)();

    ‘’ 我刚开始学习C语言的时候是写简单的数学运算在黑框框里面跑,然后用C语言写51单片机的代码,再到后来玩stm32,学应用层编程,学内核编程等,框架结构逐渐变的复杂,也越来越觉得对C语言的理解还不够到位...个人总结一下C语言中有关函数的知识,如有问题请留言指明*v* (*(void(*)())0)(); 其实这个语句只有在微处理器最底层才有可能被调用,因为应用层几乎没有直接对一个地址进行操作的。...第三个问题:这个地方也是比较绕的地方,我们直接定义一个函数指针时要指明函数的返回值类型以及入参类型等,正常我们定义一个有一个int入参没有返回值的函数指针变量是 void (*funcp)(int);,...函数指针相关的知识点还是很重要的,在一些较大的项目中,我们经常会看到这样的语句 typedef void (*HANDLER) (int);,这是定义一种函数指针类型,后面直接使用HANDLER就可以定义入参一个...C语言的函数指针非常重要,大工程里面经常出现各种回调函数,学习的过程中,基本功还是要扎实,不然真的会经常踏入陷阱。 ps:本文参考资料《C陷阱与缺陷》,感兴趣的同学可以读一读

    1.8K20

    C语言中void具体有什么作用

    1.概述 许多初学者对C/C++语言中的void及void指针类型不甚理解,因此在使用上出现了一些错误。...3.void的使用 下面给出void关键字的使用规则: 规则一 如果函数没有返回值,那么应声明为void类型 在C语言中,凡不加返回值类型限定的函数,就会被编译器作为返回整型值处理...林锐博士《高质量C/C++编程》中提到:“C++语言有很严格的类型安全检查,不允许上述情况(指函数不加类型声明)发生”。...规则二如果函数无参数,那么应声明其参数为void 在C++语言中声明一个这样的函数: int function(void) { return 1; } 则进行下面的调用是不合法的...); getchar(); } 编译正确且输出1,这说明,在C语言中,可以给无参数的函数传送任意类型的参数,但是在C++编译器中编译同样的代码则会出错。

    2K20

    TypeScript-any和void类型

    前言TypeScript 中的 "any" 类型表示一种不具体限制类型的变量,可用于灵活的编码,但缺乏类型检查。而 "void" 类型用于表示函数不返回任何值。...任何值赋予 "void" 类型时,通常用于强调函数的副作用而非返回值。使用 "any" 要小心,它减弱了类型检查,而 "void" 有助于明确函数的返回意图。...如上代码的含义为,定义了一个可以保存任意类型数据的变量void 类型void 与 any 正好相反, 表示没有任何类型, 一般用于函数返回值:function test(): void { console.log...是所有类型的子类型, 所以我们可以将 null 和 undefined 赋值给任意类型然后在来看可以赋值 null 和 undefined:let value: void;value = null;value...= undefined;// 会报错// value = true;console.log(value);图片如上 let value: void; 代码的含义为,定义了一个不可以保存任意类型数据的变量

    31320

    C语言——枚举类型

    一,什么是枚举类型 简单来说,枚举类型就是可以让我们给整数值分配有意义的名字,从而使得代码更易读、易维护 二,枚举类型的定义和变量的声明 1,如何定义和声明 枚举类型的定义和变量的声明方式也与结构体和联合体相似...如果我们在创建枚举变量时,为未给成员进行初始化赋值,则C语言会自动赋值 遵循:默认从0开始,依次增1 如果只有前几个值,那么后面未被赋值的成员也会被自动赋值,遵循依次增1 例子一(不赋值)...存在同名的枚举成员 enum color1 { red, yellow, blue }; enum color2 { red, black, white }; 三,对变量进行赋值 1,使用成员赋值 ⭐C语言中的枚举变量通常只能被赋值为枚举类型中定义的成员...blue = 3 }; int main() { enum color a, b, c; a = red; b = yellow; c = blue; return 0; } 2,强制类型转化...blue = 3 }; int main() { enum color c; c = (enum color)10; //强制类型转换 printf("%d\n", c); return 0

    88811

    C语言(枚举类型)

    C语言中的枚举类型常年跑龙套当配角,不受待见,这当然是有其个人原因的。今天来个小知识,看看枚举为什么那么衰,也顺便看看怎么用。 我们先来回忆一下为什么需要枚举,枚举究竟是个什么东东?...这么看来,枚举是一种挺好玩也挺有用的东西,但是在C语言中怎么就不受待见了呢?...原因是C语言只提供了一种阉割版的枚举,以上两大目的在C中实质上都是没有实现的,也就是说,在C语言中,实际情况是这样的: color = blue; // 正确,此时color就是5 color = 5;...此时color就是blue color = 8; // 正确,8是整型,跟枚举完全没有任何区别 color = red + orange; // 正确,完全等价于 color = 1+2 你看明白了吧,C语言中的所谓枚举其实就是个坑爹货...枚举的真正实现,在C++中才有实现。

    1.8K30
    领券