版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、C语言与语言与C+语言的区别语言的区别C语言与语言与C+语言的最主要区别语言的最主要区别o C是是面向过程面向过程的语言,的语言,C+是是面向对象面向对象的语的语言。言。o 因此,因此,C中没有类的概念,全部代码都包含中没有类的概念,全部代码都包含在函数中。在函数中。o C提供了大量的库函数:提供了大量的库函数:n 输入输出函数:输入输出函数:printf(), scanf(), n 动态内存分配函数:动态内存分配函数:malloc(), free(), n 内存管理:内存管理:memset(), memcpy(), n .C+程序与程序与C程序对比程序对比#include using nam
2、espace std;int main()for (int i=0; i10; i+)coutHello!endl;return 0;#include int main() int i;for (i=0; i10; i+)printf (Hello!n);return 0;C+CC语言与语言与C+语言的区别语言的区别o 变量定义位置变量定义位置o 结构体变量结构体变量o 数据类型数据类型o 输入输出输入输出o 动态内存分配动态内存分配o 其他区别其他区别1. 变量变量定义位置定义位置o C89要求所有变量都必须定义在块的最前部要求所有变量都必须定义在块的最前部o C+没有这个要求,可以在程序任
3、意位置没有这个要求,可以在程序任意位置定义新的变量定义新的变量2. 结构体结构体变量变量o 在在C+中,中,struct结构体支持成员函数的结构体支持成员函数的定义,定义,C中不行中不行。o 如果在如果在C的的struct中定义函数,编译时会显中定义函数,编译时会显示一个示一个“field function name declared as function”错误错误2. 结构体结构体变量(续)变量(续)/*ch3_10.c */struct Aint a;int b();int main()struct A c;c.a=2;return 0;编译错误:编译错误:“ch3_10.c:5: er
4、ror: field b declared as a function”C+标准可以通过编译标准可以通过编译2. 结构体结构体变量(续)变量(续)o 在在C语言中,声明一个结构体类型语言中,声明一个结构体类型A之后,之后,使用下面的语句来定义结构体变量使用下面的语句来定义结构体变量a:n struct A a;o 而而C+语言中可以省略语言中可以省略struct3. 数据类型数据类型o C+中有中有bool (或或boolean类型);类型);o C中没有这样的中没有这样的bool类型,均为数值类型!类型,均为数值类型!o C编译器不能通过编译,编译器不能通过编译,C+编译器可以编译器可以bo
5、ol a;a = 1;4. 输入输出输入输出 o C中使用中使用printf、scanf输入输出输入输出o 使用时必须包含使用时必须包含stdio.h头文件头文件int a;scanf( %d, &a );printf( 您输入的数值是您输入的数值是%dn, a );A. scanf()函数函数o 功能:功能:n 从键盘读入指定格式的数据从键盘读入指定格式的数据o 格式:格式:n scanf( 控制字符串控制字符串, 输入项列表输入项列表 );o 注意:注意:n scanf中各变量一定是表示地址的标识符中各变量一定是表示地址的标识符(加加&)控制字符串控制字符串o 控制字符串有
6、两部分组成:控制字符串有两部分组成:n 格式说明格式说明o 形式:形式:n %n 普通字符普通字符o 空格空格o 可打印字符可打印字符格式说明格式说明o 各格式字符及其意义:(详见各格式字符及其意义:(详见C教程)教程)nd:输入一个十进制整数:输入一个十进制整数no:输入一个八进制整数:输入一个八进制整数nx:输入一个十六进制整数:输入一个十六进制整数nf:输入一个小数形式的浮点数:输入一个小数形式的浮点数ne:输入一个指数形式的浮点数:输入一个指数形式的浮点数nc:输入一个字符:输入一个字符ns:输入一个字符串:输入一个字符串空格空格o 在多个输入时,一般用空格或回车作为分隔在多个输入时,
7、一般用空格或回车作为分隔符符o 若以空格作为分隔符,当输入中包含字符类若以空格作为分隔符,当输入中包含字符类型时,可能产生非预期的结果型时,可能产生非预期的结果scanf ( %d%c, &a, &ch );输入:输入:45 q输出:输出:45 空格空格空格(续)空格(续)o 如下语句会有正确输出如下语句会有正确输出o 此处此处%d后的空格,就可以跳过字符后的空格,就可以跳过字符q前前的所有空格的所有空格scanf ( %d %c, &a, &ch );输入:输入:45 q输出:输出:45 q可打印字符可打印字符o 看一个例子看一个例子o 输入为:输入为:1,2
8、,qo 可以得到可以得到 a = 1, b = 2, ch = qo 输入为:输入为:1 2 qo 除除a的值为的值为1外,外,对对b与与ch的赋值失败的赋值失败scanf ( %d,%d,%c, &a, &b, &ch );B. printf()函数函数o 功能:功能:n 从缺省输出设备(一般为显示器)输出规定格从缺省输出设备(一般为显示器)输出规定格式的字符串式的字符串o 格式:格式:n printf( 控制字符串控制字符串, 输入项列表输入项列表 );控制字符串控制字符串o 控制字符串有两部分组成:控制字符串有两部分组成:n 格式说明格式说明o 形式:形式:n %
9、n 普通字符普通字符o 空格空格o 可打印字符可打印字符格式说明格式说明o 各格式字符及其意义:(详见各格式字符及其意义:(详见C教程)教程)nc:按字符型输出:按字符型输出no:按八进制输出:按八进制输出nd:按十进制输出:按十进制输出nx:按十六进制输出:按十六进制输出nu:按无符号整数输出:按无符号整数输出nf:按浮点型小数输出:按浮点型小数输出ng:按:按e和和f格式中较短的一种输出格式中较短的一种输出ne:按科学计数法输出:按科学计数法输出普通字符普通字符o 普通字符:普通字符:n 可打印字符可打印字符o 主要是说明字符,按原样输出,支持汉字输出主要是说明字符,按原样输出,支持汉字输
10、出n 转义字符(例)转义字符(例)o 不能直接打印,控制产生特殊的输出效果不能直接打印,控制产生特殊的输出效果普通字符(续)普通字符(续)o 转义字符示例转义字符示例i = 789,n = 123, a = 92.34567,且,且i为整型,为整型,n为长整型。为长整型。 printf( %4dt%7.4fnt%lun, i, a, n );输出为:输出为: 78992.3457 123C语言输入输出总结语言输入输出总结o 输入输出可能是输入输出可能是C和和C+的最明显的区别的最明显的区别n C中用中用scanf(), printf()来完成输入输出操作来完成输入输出操作n C+中全局对象中全
11、局对象cin、cout来输入输出,比来输入输出,比C更方便,而且类型检查机制更加完善更方便,而且类型检查机制更加完善o C+中的使用方式中的使用方式nnew申请申请ndelete释放释放o C中的使用方式中的使用方式nmalloc()申请申请nfree()释放释放5. 动态内存分配动态内存分配o 函数原型:函数原型:nvoid *malloc( long size );o 作用:作用:n在对内存中分配在对内存中分配size各字节,并返回了指向这各字节,并返回了指向这块内存首地址的指针块内存首地址的指针n如果分配失败,返回如果分配失败,返回NULLo 返回指针为返回指针为void*型的,要强制转
12、换型的,要强制转换A. malloc()函数函数o 函数原型:函数原型:nvoid free( void *FirstByte );o 作用:作用:n将之前用将之前用malloc申请的空间归还操作系统申请的空间归还操作系统n否则就导致内存泄漏否则就导致内存泄漏o 编译器不会发现内存泄漏这样的错误编译器不会发现内存泄漏这样的错误B. free()函数函数C. 函数的用法函数的用法/*例例 3-11*/#include #include int main()int* p;if(p = (int*)malloc(sizeof(int) = NULL )printf(动态内存分配失败动态内存分配失败n);exit(1);C. 函数的用法(续)函数的用法(续)*p = 100;printf(%dn, *p);free(p);p = NULL;return 0;o 头文件:头文件:nmalloc和和free被头文件被头文件stdlib.h包含包含nC+中中new和和delete为关键字,故无需头文为关键字,故无需头文件包含件包含o 使用:使用:nint *p=(int*)malloc(
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024SAP项目实施与客户定制化服务合同2篇
- 2024年度某影视制作公司与网络平台就影视作品版权购买与分销合同3篇
- 2024中铁三局集团有限公司铁路通信工程合同2篇
- 2024内衣品牌授权与销售代理合同范本3篇
- 2024年度智能制造业ERP系统采购与服务合同范本2篇
- 采购安装协议合同范例
- 路灯杆维修合同范例
- 2024年度幼儿园消防设施维护合同3篇
- 2024年度学术成果出版与知识产权保护合同3篇
- 2024年度节能设备采购预付款担保合同范本3篇
- 心理健康课件教学课件
- 贵州省建筑工程施工资料管理导则
- 2024年度钢模板生产与销售承包合同3篇
- 《QHSE体系培训》课件
- 计量经济学论文-城镇单位就业人员工资总额的影响因素
- 《农业企业经营管理》试题及答案(U)
- 山东省聊城市2024-2025学年高一上学期11月期中物理试题
- 孙悟空课件教学课件
- 新能源行业光伏发电与储能技术方案
- 2024年执业药师继续教育专业答案
- 中国高血压防治指南(2024年修订版)要点解读
评论
0/150
提交评论