第1章C的初步知识

上传人:m**** 文档编号:469318795 上传时间:2023-01-23 格式:DOCX 页数:9 大小:47.71KB
返回 下载 相关 举报
第1章C的初步知识_第1页
第1页 / 共9页
第1章C的初步知识_第2页
第2页 / 共9页
第1章C的初步知识_第3页
第3页 / 共9页
第1章C的初步知识_第4页
第4页 / 共9页
第1章C的初步知识_第5页
第5页 / 共9页
点击查看更多>>
资源描述

《第1章C的初步知识》由会员分享,可在线阅读,更多相关《第1章C的初步知识(9页珍藏版)》请在金锄头文库上搜索。

1、百度文库第1章C+的初步知识上学期是以c为蓝本来讲解,这学期需要增加一些C+的内容,这是进入C/C+程序设计II学习的前期准备。丁从C到C+c语言是结构化和模块化的语言,它是面向过程的。能处理小规模的程序。但当规模较大时会显示出它的不足。为了解决这个软件危机,提出了面向对象的程序设计(objectorientedprogramming,OOP)思想。C+保留了C语言原有的所有优点,增加了面向对象机制。所以C+也称为“带类的C”。C+对C的“增强”,表现在以下两个方面:1、在原来面向过程的机制基础上,对C语言的功能作了扩充。(本章将介绍充分部分)2、增加了面向对象的机制。在面向对象的程序设计中仍

2、然要用到结构化程序设计的知识。下面介绍C+对C的扩充,及与C的差别所在。最简单的C+程序C+程序在结构上与C的差别如下:1、标准C+规定main函数声明为int型,即此主函数带回一个整型的函数值。程序如果正常执行,则操作系统返回数值0,否则返回数值-1。2、系统头文件不带后缀.h,如:#include3、使用系统库时要使用命名空间std。即使用usingnamespacestd;,这句话的意思是使用命名空间stdoC+标准库中的类和函数是在命名空间std中声明的,因此程序中如果需要用到C+标准库,就需要用usingnamespacestd;来声明,表示要用命名空间std中的内容。例最简单的只有

3、输出的程序#includeusingnamespacestd;intmain()cout,从cin输人流中抽取字符。例如:inta;cina;。不管把什么基本数据类型的名字或值传给流,它都能懂。例如,下面的程序是输出字符串和整数:#includeusingnamespacestd;intmain()coutThisisaC+program.endl;coutThisisaC+program.endl;coutThisis;coutaC+program.;coutendl;cout2;coutabc;,也可以写成:cina;/cinb;cinccin能够知道抽取的变量的类型,它将对a,b,c分别

4、给出一个整型、浮点型和字符型数。二、输入流与输出流中使用控制符(第七章中详细介绍,这里了解就可以了)流的默认格式输出有时不能满足特殊要求,如:doubleaverage=;coutaverageendl;希望显示的是,即保留两位小数,可是却显示了,默认显示6位有效位。用控制符(manipulators)可以对I/O流的格式进行控制。控制符是在头文件中定义的对象。可以直接将控制符插入流中。常用控制符如下表所列。表1I/O流的常用控制符控制符描述DecHexOctsetfill(c)setprecision(n)setw(n)setiosflags(ios:fixed)setiosflags(io

5、s:scientific)setiosflags(ios:left)setiosflags(ios:right)setiosflags(ios:skipws)setiosflags(ios:uppercase)setiosflags(ios:lowercase)置基数为10置基数为16置基数为8设填充字符为c设显示小数精度为n位设域宽为n个字符固定的浮点显示指数表示左对齐zd右对齐/忽略前导空白/16进制数大写输出/16进制数小写输出/使用控制符时,要在程序的头上加头文件#include#includeusingnamespacestd;intmain()inti=100;coutiendl;

6、couthexiendl;doubled=;coutdendl;coutsetprecision(9)dendl;return0;1.3.2用const定义常变量在C语言中常用#define/命令来定义符号常量,实际上,只是进行字符置换,容易误解#includeusingnamespacestd;#defineR2+3intmain()coutR*Rendl;1.3.31.3.43.1415f.voidfunc(INTx)1.3.51.3.6.voidpoint(inta)returnpoint(a,4);voidpoint()returnpoint(3,4);可以用下面的默认参数的函数来替代

7、:voidpoint(int=3,int=4);当调用“point。”时,即调用“points4);”它是第3个声明的重载函数。当调用“point(6);”时,即调用“point(6,4);”,它是第2个声明的重载函数。当调用“point(7,8);”时,即调用第1个声明的重载函数如果一组重载函数(可能带有默认参数)都允许相同实参个数的调用,将会引起调用的二义性。例如:voidfunc(int);/重载函数之一voidfunc(int,int=4);重载函数之二,带有默认参数voidfunc(int=3,int=4);重载函数之三,带有默认参数func(7);/error:到底调用3个重载函数

8、中的哪个?func(20,30)/error:到底调用后面2个重载函数的哪个?学生练习:将P13例不用重载,改用带有默认参数的函数。#includeusingnamespacestd;intmax(inta,intb,intc=0)return(ab?a:b)c?(ab?a:b):c;intmain()inta,b,c;cinabc;coutmax(a,b,c)max(a,b)endl;1.3.7变量的引用引用是C+引入的新语言特性,是C+、常用的一个重要内容之一,正确、灵活地使用引用,可以使程序简洁、高效。许多人使用它仅仅是想当然,在某些微妙的场合,很容易出错,究其原由,大多因为没有搞清本源

9、。一、引用的概念引用是个别名,就是某一个变量或对象(目标)的别名。从那时起,引用作为目标的别名而使用。对引用的改动实际就是对目标的改动,对引用的操作与对变量直接操作完全一样。引用的声明方法:类型标识符&引用名=目标变量名;如:inta;int&ra=a;/定义引用ra,它是变量a的引用,即别名。说明:(1)&在此不是求地址运算,而是起标识作用。在看到&ra形式时,当&ra前有类型符时(如int&ra),它就是对引用的声明;如果前面没有类型符(如p=&ra),则&是取地址运算符。(2)类型标识符是指目标变量的类型。(3)声明引用时,必须同时对其进行初始化。(4)引用声明完毕后,相当于目标变量名有

10、两个名称,即该目标原名称和引用名,且不能再把该引用名作为其他变量名的别名。ra=1;等价于a=1;(5)声明一个引用,不是新定义了一个变量,它只表示该引用名是目标变量名的一个别名,它本身不是一种数据类型,因此引用本身不占存储单元,系统也不给引用分配存储单元。故:对引用求地址,就是对目标变量求地址。&ra与&a相等。(6)不能对void进行引用。(7)不能建立数组的引用。因为数组是一个由若干个元素所组成的集合,所以无法建立一个数组的别名。(8)由于指针也是变量,所以可以有指针变量的引用。引用本身不是一种数据类型,所以没有引用的引用,也没有引用的指针。二、引用的简单使用通过下面的例子来了解引用的简

11、单使用。自编例,阅读程序#includevoidmain()intintOne;int&rInt=intOne;intOne=5;coutintOne:intOneendl;coutrInt:rIntendl;rInt=7;coutintOne:intOneendl;coutrInt:rIntendl;cout&intOne:&intOneendl;cout&rInt:&rIntendl;运行结果为:intOne:5rInt:5intOne:7rInt:7&intOne:0x0012FF7c&rInt:0x0012FF7c三、引用作为函数参数/引用的一个重要作用就是作为函数的参数。以前的C语言

12、中函数参数传递是值传递,如果有大块数据作为参数传递的时候,采用的方案往往是指针,.因为这样可以避免将整块数据全部压栈,可以提高程序的效率。但是现在(C+中)又增加了一种同样有效率的选择(在某些特殊情况下又是必须的选择)/,就是引用。例:实现两个变量值的交换首先来看一下利用指针传递方式来实现例使用指针变量作形参,实现两个变量的互换#includevoidswap(int*p1,int*p2)此处函数的形参p1,p2都是指针intp;p=*p1;*p1=*p2;*p2=p;/此处需要用*p1、*p2,容易出错,难于阅读voidmain()inta,b;cinab;输入a,b两变量的值swap(&a

13、,&b);变量a和b的地址作为实参调用swap函数coutab;/输出结果传递指针给用户增加了编程和理解的负担,下面我们用引用来实现。例使用引用作形参,实现两个变量的互换#includevoidswap(int&p1,int&p2)此处函数的形参p1,p2都是引用intp;p=p1;p1=p2;p2=p;这里直接用pl、p2/*为了在程序中调用该函数,则相应的主调函数的调用点处,直接以变量作为实参进行调用即可而不需要实参变量有任何的特殊要求。如:对应上面定义的swap函数,相应的主调函数可写为:*/voidmain()inta,b;cinab;输入a,b两变量的值swap(a,b);直接以变量a和b作为实参调用swap函数coutab;/输出结果上述程序运行时,如果输入数据1020并回车后,则输出结果为2010o由上例可看出:(1)传递引用给函数与传递指针的效果是一样的。这时,被调函数的形参就成为原来主调函数中的实参变量或对象的一个别名来使用,所以在被调函数中对形参变量的操作就是对其相应的目标对象(在主调函数中)的操作。(2)使用引用传递函数的参数,在内存中并没有产生实参的副本,它是直接对实参操作;而使用一般变量传递函

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 商业/管理/HR > 市场营销

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号