《C基础知识》PPT课件.ppt
《《C基础知识》PPT课件.ppt》由会员分享,可在线阅读,更多相关《《C基础知识》PPT课件.ppt(60页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。
1、C+基础知识张涛08.11.10东华理工大学核工程技术学院全面支持C C+语言的产生语言的产生 1983加入类CC+ANSI C+1994标准化C+语言的特点语言的特点 面向对象,也可用于面向过程的结构化程序设计也可用于面向过程的结构化程序设计比C更完善、安全、高效 面向对象的基本概念面向对象的基本概念 对象对象是用来描述客观事物的一个实体张三李四属性服务性别,年龄说话,行走抽象类类是具有相同属性和服务的一组对象的概括具体化继承新类新类人说话,行走性别,年龄大学生性别,年龄,专业说话,行走,学习消息预处理命令用来定义某些编译内容要在满足一定条件下才参与编译,否则不参与编译;可使同一源程序在不同
2、的编译条件下产生不同的目标代码。预处理命令不是C+语言的一部分;常用的预处理命令文件包含命令宏定义命令条件编译命令停止编译命令避免重复引用某个头文件(条件编译和文件包含)/main.cpp#include myfile1.h#include myfile2.h/myfile1.h#include myhead.h/myfile2.h#include myhead.h改进:/myfile1.h#ifndef MYHEAD_H#define MYHEAD_H#include myhead.h#endif/myfile2.h#ifndef MYHEAD_H#define MYHEAD_H#inclu
3、de myhead.h#endif C+的数据类型指针一个变量的地址称为该变量的“指针”。指针是C+对内存地址的一种抽象。指针变量是一种存放内存地址的变量,在C+中指针的值就是地址。指针的一般定义形式为:数据类型 *变量名其中的数据类型可以是C+中的任何一种数据类型,*是“指向”的意思。例如:int a,*p1,*p2;p1&a;引用说明 int num=50;int&ref=num;表示放整数 50 的内存空间 可叫 num,又可叫 ref 引用实质上是为另一个变量建立别名。引用引用是一种数据形式,使用场合有引用变量、引用参数、引用函数返回值等。引用引用最大的作用就是作为函数的参数与返回值。
4、引用作为函数参数,有以下好处:引用引用参数传递的就是参数本身,而不是实在参数的一个副本,这样减少了建立副本的消耗。引用引用作为参数还可以作为函数返回值的一种有效途径。可以通过将引用定义为是const引用来限制在函数中对引用所代表的实在参数做修改。引用常类型常类型:使用类型修饰符const说明的类型;常类型的变量或对象的值是不能被更新的;定义或说明常类型时必须初始化;const修饰其左边的类型;一般常量(简单类型的常量)const 或const int const x=2;或const int x=2;int const a3=1,2,3;或const int a3=1,2,3;数组元素的值是常
5、量,不能更新;常对象 const class Aint x,y;public:const A a1(3,4);A(int i,int j)x=i;y=j;private:A const a1(3,4);常对象A常指针char*const ptr1=strptr1;ptr1是一个常量指针;ptr1=strptr2;*ptr1=m;ptr1不可以更新ptr1所指向的变量可以更新;const的位置const char*ptr2=strptr1;ptr2是一个指向字符串常量的指针;ptr2=strptr2;*ptr2=m;ptr2可以更新ptr2所指向的字符串不可以更新;错误正确正确错误常引用常引用所
6、引用的对象不能被更新;const&double x=1.2;const double&v=x;则:v=12.3错误。使用常参数表明该函数不会更新某个参数所指向或所引用的对象,并使该函数具有更大的适应性;常指针。#include const int N=6;void print(const int*p,int n);void main()int arrayN;for(int i=0;iarrayi;print(array,N);void print(const int*p,int n)cout*p;for(int i=0;iN;i+)cout,*(p+1);coutendl;整型常量常指针作形参
7、输入:1 2 3 4 5 6输出:1,2,3,4,5,6形参为常指针,实参为一般数组常成员函数使用const关键字进行说明的成员函数;()const;const是函数类型的一个组成部分,在函数实现部分必须带有const关键字;说明:只有常成员函数才能操作常对象;成员函数与对象之间的操作关系#include class Kpublic:K(int i)k=i;int setk()const return k;private:int k;int add(const K&g1,const K&g2);void main()K k1(8),k2(17);常成员函数常引用作形参 int s=add(k1
8、,k2);coutsendl;int add(const K&g1,const K&g2)int sum=g1.setk()+g2.setk();return k;形参为常引用,实参为非常对象类型适应输出25C运算符函数C+语言认为函数是一个能完成某一独立功能的子程序,也就是程序模块。函数就是对复杂问题的一种“自顶向下,逐步求精”思想的体现。编程者可以将一个大而复杂的程序分解为若干个相对独立而且功能单一的小块程序(函数)进行编写,并通过在各个函数之间进行调用,来实现总体的功能。使用函数的优点:(1)可读性好;(2)易于查错和修改;(3)便于分工编写,分阶段调试;(4)各个函数之间接口清晰,便于
9、相互间交换信 息和使用;(5)节省程序代码和存储空间;(6)减少用户总的工作量;(7)成为实现结构程序设计思想的重要工具;(8)扩充语言和计算机的原设计能力;(9)便于验证程序正确性。在C+程序中调用函数之前,首先要对函数进行定义。如果调用此函数在前,函数定义在后,就会产生编译错误。为了使函数的调用不受函数定义位置的影响,可以在调用函数前进行函数的声明。这样,不管函数是在哪里定义的,只要在调用前进行函数的声明,就可以保证函数调用的合法性。函函数数原原型型是是一一条条以以分分号号结结束束的的语语句句,实实际际上上就是所定义函数的函数头,形如:就是所定义函数的函数头,形如:函数返回值类型函数返回值
10、类型 函数名函数名 (形参表形参表 )其中形参表可以逐个列出每个参数的类型和参数名,其中形参表可以逐个列出每个参数的类型和参数名,也可以列出每个形参的类型,也可以列出每个形参的类型,参数名可省略参数名可省略,各形参之间,各形参之间以逗号分隔。函数原型和所定义的函数必须在返回值类型、以逗号分隔。函数原型和所定义的函数必须在返回值类型、函数名、形参个数和类型及函数名、形参个数和类型及次序次序等方面完全对应一致,否等方面完全对应一致,否则将导致编译错误。则将导致编译错误。C+中函数定义格式如下:存储类型存储类型 函数类型函数类型 函数名函数名()/函数定义头函数定义头/函数定义体函数定义体 说明语句
11、;说明语句;表达式语句;表达式语句;return 表达式表达式;返回值类型返回值类型在上述格式中,函数的存储类型可以缺省,但函数类型、函数名和参数表不能省略。参数表中列举函数的所有参数,函数也可以没有参数,但此时函数名后面的圆括号()仍不可少。例如:int max(int a,int b)int t;if(ab)t=a;else t=b;return t;类型就是该函数的类型,也就是该函数的返回值的类型,此类型可以是C+中除函数、数组类型之外的任何一个合法的数据类型。函数的返回值通常指明了该函数处理的结果,由函数体中的return语句给出。一个函数可以有返回值,也可以无返回值。此时需要使用保留
12、字void作为类型名。每个函数都有类型,如果在函数定义时没有明确指定类型,则默认类型为int。函数调用的格式:函数调用的格式:在C+中,除了主函数main由系统自动调用外,其他函数都是由主函数直接或间接调用的。函数调用的语法格式为:函数名(实际参数表);实参应该与函数定义中的形参表中的形参一一对应,即个数相等、次序一致且对应参数的数据类型相同或相容。每个实参是一个表达式,并且必须有确定的值。函数调用时的参数传递函数调用时的参数传递参数传递称为“实虚结合”,即实参向形参传递信息,使形参具有确切地含义(即具有对应的存储空间和初值)。这种传递又分为两种不同的方式,一种是按值传递,另一种是地址传递或引
13、用传递。1.按值传递按值传递被调用函数本身不对实参进行操作,即使形参的值在函数中发生了变化,实参的值也完全不会受到影响,仍为调用前的值。按值传递例子#include iostream.hvoid swap(int,int);void main()int a=3,b=4;couta=a,b=“bendl;swap(a,b);couta=a,b=b endl;voidswap(intx,inty)intt=x;x=y;y=t;此程序的运行结果为:此程序的运行结果为:a=3,b=4a=3,b=42.地址传递地址传递如果在函数定义时将形参的类型说明成指针,它把实参的存储地址传送给对应的形参,从而使得形
14、参指针和实参指针指向同一个地址。因此,被调用函数中对形参指针所指向的地址中内容的任何改变都会影响到实参。#include iostream.hvoid swap(int*,int*);void main()int a=3,b=4;couta=a,b=“bendl;swap(&a,&b);couta=a,b=“bendl;voidswap(int*x,int*y)intt=*x;*x=*y;*y=t;此程序的运行结果为:此程序的运行结果为:a=3,b=4a=4,b=3按地址传递例子3.引用传递引用传递按值传递方式容易理解,但形参值的改变不能对实参产生影响;地址传递方式虽然可以使得形参的改变对相应
15、的实参有效,但如果在函数中反复利用指针进行间接访问,会使程序容易产生错误且难以阅读。如果以引用作为参数,则既可以使得对形参的任何操作都能改变相应的实参的数据,又使函数调用显得方便、自然。引用传递方式是在函数定义时在形参前面加上引用运算符“&”。#include iostream.hvoid swap(int&,int&);void main()int a=3,b=4;couta=a,b=“bendl;swap(a,b);couta=a,b=“bendl;voidswap(int&x,int&y)intt=x;x=y;y=t;此程序的运行结果为:此程序的运行结果为:a=3,b=4a=4,b=3按
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C基础知识 基础知识 PPT 课件
限制150内