C语言-(void*)类型指针
(void*)类型指针:ANSI新增的:即定义了一个指针,但不指定指向任何类型(即指向抽象的数据类型)。void是空类型,只保存了指针的值,而丢失了类型信息
1 通过强制类型转换可将其值赋给另一指针变量
2.1用于动态存储函数的返回型指针 void malloc/calloc()
2.2也可用于函数 void*fun() //表示返回值是一个地址,指向空(抽象)数据类型
空指针NULL:不指向任何对象,不同于未初始化的野指针。
#ifdef __cplusplus
#define NULL 0
#else
#define NULL ((void *)0)
#endif
数组与指针:数组所占存储空间的内存:sizeof(数组名) 数组的大小: sizeof(数组名)/sizeof(数据类型)
const 和 指针
- 指向常量的指针,值不能改变,指向可改变
- 常指针值能改变,指向不可改变
- 指向常量的常指针,都不能改变

#include <stdio.h> int main()
{
// 1 指向常量的指针:指向可变,值不能变可改变指针
const int a = 10;
int e = 20;
int *p = &a;
p=&e; //可指向其它对象
//*p = 1000;//但指向&a后其值*a就不能变化
printf("*p = %d\n", *p); // 2 可改变指针
const b = 10;
int *pb = &b;
pb = p;
printf("*pb = %d\n", *pb); // 3常指针
const c = 10;
int * const pc = &c;//常指针指向一个对象后指向不能变
*pc = 1000; //但值可变(指向对象的值)
//pc = pb;不能改变 //4指向常量的常指针
const d = 10;
const * int const pd = &d;
//*pd = 1000;都 不能改变 printf("\n");
return 0;
}
深拷贝与浅拷贝:
浅拷贝即通过指针赋值的方法实现指向,但如果浅拷贝后要删除就会使另外对象中的指针就会无效,形成所谓的野指针,而访问无效指针是危险的。
C语言-(void*)类型指针的更多相关文章
- C语言利用 void 类型指针实现面向对象类概念与抽象。
不使用C++时,很多C语言新手可能认为C语言缺乏了面向对象和抽象性,事实上,C语言通过某种组合方式,可以间接性的实现面对对象和抽象. 不过多态和继承这种实现,就有点小麻烦,但是依然可以实现. 核心: ...
- C语言利用 void 类型指针实现面向对象类概念与抽象
不使用C++时,很多C语言新手可能认为C语言缺乏了面向对象和抽象性,事实上,C语言通过某种组合方式,可以间接性的实现面对对象和抽象. 不过多态和继承这种实现,就有点小麻烦,但是依然可以实现. 核心: ...
- void类型指针的基本用法
void作为指针时可以用任意类型的的指针值都可以给它进行赋值和传递,但是输出时必须时显性输出 代码如下: #include<cstdio> #include<iostream> ...
- C语言基础(16)-指针
一.指针的相关概念 1.1 指针变量 指针是一个变量,存放的是一个地址,该地址指向一块内存空间. 例: ; int *p = &a; // 定义一个指针变量p,&符号可以取得一个变量在 ...
- C语言之void类型及void指针 分类: C/C++ 2015-07-13 11:24 8人阅读 评论(0) 收藏
原文网址:http://www.cnblogs.com/pengyingh/articles/2407267.html 1.概述 许多初学者对C/C 语言中的void及void指针类型不甚理解,因此在 ...
- C语言的通用指针类型(void *)
reference: https://blog.csdn.net/cumirror/article/details/4631701 https://blog.csdn.net/Lee_Shuai/ar ...
- C/C++语言void及void指针深层探索(转)
转自:http://www.lanou3g.com/blog/sort/SelfiOS/page/78 1.概述 许多初学者对C/C++语言中的void及void指针类型不甚理解,因此在使用上出现了一 ...
- 【转载】C/C++语言void及void指针深层探索
C/C++语言void及void指针深层探索 1.概述许多初学者对C/C++语言中的void及void指针类型不甚理解,因此在使用上出现了一些错误.本文将对void关键字的深刻含义进行解说,并详述vo ...
- void类型及void指针
1.概述 许多初学者对C/C 语言中的void及void指针类型不甚理解,因此在使用上出现了一些错误.本文将对void关键字的深刻含义进行解说,并 详述void及void指针类型的使用方法与技巧. 2 ...
随机推荐
- 【转载】Java容器的线程安全
转自:http://blog.csdn.net/huilangeliuxin/article/details/12615507 同步容器类 同步容器类包括Vector和Hashtable(二者是早期J ...
- Jquery获取html参数, jquery.params.js 获取参数
================================ ©Copyright 蕃薯耀 2019年12月31日 http://fanshuyao.iteye.com/ /** * 使用:$.q ...
- bugku 本地包含
本地包含 题目信息 地址:http://123.206.87.240:8003/ <?php include "flag.php"; $a = @$_REQUEST['hel ...
- 左偏树 (bzoj 2809)
Description 在一个忍者的帮派里,一些忍者们被选中派遣给顾客,然后依据自己的工作获取报偿.在这个帮派里,有一名忍者被称之为 Master.除了 Master以外,每名忍者都有且仅有一个上级. ...
- mybatis--实现数据库增删改查
首先,创建一个数据库my,并在数据库中插入一张表user,然后在user表中插入一行数据,代码如下: create database my; use my; create table user( id ...
- 消息中间件技术 - 浅谈mqtt协议及其实现
作者:carter(佘虎),转载请注明出处,特别说明:本博文来自博主原博客,为保证新博客中博文的完整性,特复制到此留存,如需转载请注明新博客地址即可. 1.1概念 MQTT(MQ Telemetry ...
- centos默认安装mysql的默认密码
安装centos时选择安装Mysql 服务器 mysql的默认登录密码为空,但是直接登录的时候有报错: [root@localhost bin]# mysql -u root -pEnter pass ...
- P & R 9
Floorplan: 要做好floorplan需要掌握哪些知识跟技能? 明确Floorplan 处理的对象:对于数字设计的 Floorplan 来说,它是一个很依赖前后步骤的一个过程,这个可以看作是后 ...
- js + jquery 实现分页区翻页
简单来说,情况是这样的,假如做好了对动漫每一集进行分页,如下图: 但当分页太多就会变得不能看,而且前后箭头也不能只是摆设. 想要得到类似这样效果: 网上搜了一会翻页相关的库没什么效果,也不太合适自己的 ...
- office自签名证书
在 Office安装目录,找到 SELFCERT 文件,双击打开填写名称,生成