当前位置:首页 » 服务器技术
开发技术指南» 文章正文
    引言: 1.概述 许多初学者对C/C++语言中的void及void指针类型不甚理解,因此在使用上出现了一些错误。
 

 

 ·在c++中的odbc api数据库编程    »显示摘要«
    摘要:一、动态加载数据源 1、通过修改注册表加载数据源: ·用户数据源:hkey_current_user\software\odbc\odbc.ini·系统数据源:hkey_local_machine\software\odbc\odbc.ini 对于不同类型的数据源,注册表的修改也不同,但基本上要修改两个地方,一个是在odbc.ini子键下建立一个与数据源描述名同名的子键,并在该子键下建立与数......
    摘要:char *strcpy(char *s1, const char *s2) 将字符串s2复制到字符串数组s1中,返回s1的值 char *strncpy(char *s1, const char *s2, size_t n) 将字符串s2中最多n个字符复制到字符串数组s1中,返回s1的值 char *strcat(char *s1, const char *s2) 将字符串s2添加到字符串s......


C/C++语言void及void指针深层探索

1.概述

2.void的含义 【程序编程相关:SATA磁盘和ZIP有冲突?

许多初学者对c/c++语言中的void及void指针类型不甚理解,因此在使用上出现了一些错误.本文将对void关键字的深刻含义进行解说,并详述void及void指针类型的使用方法与技巧. 【推荐阅读:企业经理们需要哪种类型的SAN分析报告?

void几乎只有“注释”与限制程序的作用,因为从来没有人会定义一个void变量,让我们试着来定义: 【扩展信息:我想用一台机培育10硬盘用,怎么装?

void的字面意思是“无类型”,void *则为“无类型指针”,void *可以指向任何类型的数据.

void a;

这行语句编译时会出错,提示“illegal use of type void”.不过,即使void a的编译不会出错,它也没有任何实际意义.

void真正发挥的作用在于:

(1) 对函数返回的限定;

(2) 对函数参数的限定.

众所周知,如果指针p1与p2的类型相同,那么我们可以直接在p1与p2间互相赋值;如果p1与p2指向不同的数据类型,则必须使用强制类型转换运算符把赋值运算符右边的指针类型转换为左边指针的类型.

例如:

float *p1;

int *p2;

p1 = p2;

其中p1 = p2语句会编译出错,提示“= : cannot convert from int * to float *”,必须改为:

p1 = (float *)p2;

而void *则不同,任何类型的指针都可以直接赋值给它,无需进行强制类型转换:

void *p1;

int *p2;

p1 = p2;

但这并不意味着,void *也可以无需强制类型转换地赋给其它类型的指针.因为“无类型”可以包容“有类型”,而“有类型”则不能包容“无类型”.道理很简单,我们可以说“男人与女人都是人”,但不能说“人是男人”或者“人是女人”.
...   下一页
 ·内存管理内幕(1)    »显示摘要«
    摘要:追溯到在 apple ii 上进行汇编语言编程的时代,那时内存管理还不是个大问题。您实际上在运行整个系统。系统有多少内存,您就有多少内存。您甚至不必费心思去弄明白它有多少内存,因为每一台机器的内存数量都相同。所以,如果内存需要非常固定,那么您只需要选择一个内存范围并使用它即可。 不过,即使是在这样一个简单的计算机中,您也会有问题,尤其是当您不知道程序的每个部分将需要多少内存时。如果您的空间有限......
» 本期热门文章:

©2000-2007 All Rights Reserved. 最佳浏览:1024X768 MSIE