下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、summary 1) 一般工程发中需要禁用goto 语句,不同的编译器对goto 语句的处理可能不同。2)在 c 语言中,如果函数没写返回值,则默认返回值类型int ;如果函数没有写参数列表,则函数接受任意数量的参数。因此,如果函数没有返回值,必须显式声明返回值类型为void ;如果函数没有参数,则必须声明参数列表为void 。3)void 一种基础类型,但不基础数据类型,所以无法用来定义变量(c语言没规定 void 多内存空间的别名)。4)对于标准 c 语言规范,不允许sizeof(void) 这种写法,如 bcc 编译器;对于扩展 c 语言,可能允许 sizeof(void) 这种写法,如
2、 gcc 编译器,输出为 1。5)void* 指针的主要作用:用于接收任意类型的指针。在c 语言中, void* 和type*可以相互转换;在c+中,void* 可以作为左值接收任意类型的指针,作为右值时,必须进行强制类型转换。goto 和 void 1、goto goto 语句带有很浓厚的汇编语言特性,能够跳转到指定的语句,如同汇编语言的跳转指令。在工程实践中,一般都禁用“goto”。goto 会破坏程序的结构,带来意想不到的。/ 代码示例:以下代码输出什么?int main() goto end; int i = 0; end: printf(i = %dn, i); return 0;
3、gcc 编译器:编译 error ,提示 i 变量的初始化被跳过了。vs 编译器:编译警告warning ,提示 i 未初始化,但编出了可执行程序。运行的结果随机值,意料之外的!2、void 2.1 void 修饰返回值和参数在 c 语言中:如果函数没有返回值,那么应该将其声明为void 如果函数没有参数,应该声明其参数为void 注意, c语言中:如果函数没写返回值,默认的返回值类型int 如果函数没有声明参数列表,默认接受任意多参数f() int main() int i = f(1, 2, 3); / ok return 0; 2.2 否存在 void 类型的变量?结论:不存在 void
4、 类型的变量void 一种基础类型,但不基础数据类型;c语言中没有定义void 究竟多内存的别名,所以也无法定义对应的变量。int main() void var; / error void arr5; / error return 0; 小贴士 : ansi c :标准 c 语言规范,如 bcc 编译器扩展 c:在 ansi c的基础上进行了扩展,如gcc 编译器/ void类型有小么?int main() prinft(%dn, sizeof(void); return 0; gcc 编译器, demo 可以编过,输出为1 bcc 编译器,编译,提示void 不允许的类型。2.3 void
5、 类型的指针在 c 语言中,对指针类型的检查不那么严格,所以void 类型的指针可以和任意数据类型的指针进行相互转换。/ test.c int main() int* p = nullptr; void* pv = p; / ok char* pc = pv; / ok return 0; 在 c+语言中,对类型进行了增强,同事也兼容了c语言中的写法。 void 可以作为左值接受任意类型的指针,但,void 作为右值时,就必须进行强制类型转换。/ test.cpp int main() void* pv = nullptr; / 初始化个好习惯 int* pi = pv; / error, invalid conversion from void* to int* int* pi = (int*)pv; / ok, due to cast return 0; 总结: void* 指针的主要作用,用于接收任意类型的指针。示例 demo:将数组所占内存全部置0 void memset(void* src, int
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 校园突发事件应对能力培养
- 2026年中国药典含量测定考试题及答案
- 高中校园安全实施策略
- 2026年战场头部与四肢创伤包扎方法试题含答案
- 53函数的单调性第5课时(5课时)构造函数解不等式比大小课件高二上学期数学人教A版选择性
- 合作社资产管理规范操作方案
- 裁判员安全培训内容记录课件
- 节约粮食主题国旗下讲话稿范文
- 新员工入职培训讲义模板
- 三年级语文期中测试汇编
- 鹿邑县2025年事业单位引进高层次人才备考题库及答案详解(新)
- 2025云南昆明巫家坝城市发展建设有限公司社会招聘14人笔试历年难易错考点试卷带答案解析
- 2025年大学(直播电商实训)管理实操试题及答案
- 医院重症医学科主任谈重症医学治疗
- 云南省2025年普通高中学业水平合格性考试地理试题
- 基础土方回填施工工艺方案
- 2025年苏州工业园区领军创业投资有限公司招聘备考题库及一套答案详解
- 天一大联考海南省2026届数学高二上期末统考试题含解析
- DB50∕T 1803-2025 乡村振兴劳务品牌人员等级评定 武陵山缝纫工
- 中煤集团机电装备部副部长管理能力考试题集含答案
- 党支部2026年度主题党日活动方案
评论
0/150
提交评论