您的位置:首页 > 编程语言 > C语言/C++

C++基础---空类型

2015-08-15 13:52 323 查看

1. 空类型

1.1 空类型,即void类型

void类型:常用在程序编写中对定义函数的参数类型、返回值、函数中指针类型进行声明。

void类型:可以表示一种未知类型。

void类型:不能代表一个真实的变量。

下面代码都企图让void代表一个真实的变量,因此都是错误的代码:

  void a; //错误

  void function(void a); //错误

  void function(void); //正确

void体现了一种抽象,这个世界上的变量都是“有类型”。

void的出现只是为了一种抽象的需要,如果你正确地理解了面向对象中“抽象基类”的概念,也很容易理解void数据类型。正如不能给抽象基类定义一个实例,我们也不能定义一个void(让我们类比的称void为“抽象数据类型”)变量。

void* :则为“无类型指针”,可以指向任何类型的数据

1.2 void类型定义函数

void真正发挥的作用在于:(1)对函数返回的限定;(2)对函数参数的限定

#include <iostream>

using namespace std;
void add(void)
{
cout<<"调用了一个无返回值无参数列表的函数add()"<<endl;
}
int main()
{
add();
system("pause");
return 0;
}
=>调用了一个无返回值无参数列表的函数add()


注:在C++中,不能向无参数的函数传送任何参数,否则编译出错,提示“’fun’ : function does not take 1 parameters”。

1.3 void类型指针

void指针:表示未知类型的指针,可以将任意类型的指针直接赋值给void指针。真实地体现了内存操作函数的意义,因为它操作的对象仅仅是一片内存,而不论这片内存是什么类型。

#include<iostream>

#include<string>

using namespace std;
int main()
{
void* pv = NULL;
string str = "string";
int i = 1;
pv = &str;
cout<<"指向string类型变量:值为"<<*(string*)pv<<" 内存地址为"<<(string*)pv<<endl;
pv = &i;
cout<<"指向int类型变量的值:值为"<<*(int*)pv<<" 内存地址为"<<(int*)pv<<endl;
system("pause");
return 0;
}
=>指向string类型变量:值为string 内存地址为00AEFA8C
指向int类型变量的值:值为1 内存地址为00AEFA80


参考文献 :

[1] 百度搜索关键字:C++数据类型、空类型、void*
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: