《第2章C程序设计教程与实验指导杨国兴C基础名师编辑PPT课件.ppt》由会员分享,可在线阅读,更多相关《第2章C程序设计教程与实验指导杨国兴C基础名师编辑PPT课件.ppt(33页珍藏版)》请在第壹文秘上搜索。
1、C+语言程序设计杨国兴 张东玲 彭涛中国水利水电出版社第2章 C+基础 2.1 常量与变量2.2 指针与引用2.3 动态内存分配2.4 位运算符2.5 名字空间2.1 常量与变量2.1.1 常量第2章 C+基础2.1 常量与变量2.1.1 常量(续一)(3)b v000双引号退格垂直制表3位八进制数所代表的字符,如 101 代表A n单引号换行 rxhh字符回车2位16进制所代表的字符,如 x41 代表A a t响铃水平制表第2章 C+基础2.1 常量与变量2.1.1 常量(续二)(4)第2章 C+基础 检测基本数据类型所占的字节数#include void main()cout int:si
2、zeof(int)endl;cout short:sizeof(short)endl;cout long:sizeof(long)endl;cout float:sizeof(float)endl;cout double:sizeof(double)endl;cout long double:sizeof(long double)endl;cout char:sizeof(char)endl;cout bool:sizeof(bool)endl;返 回第2章 C+基础2.1 常量与变量2.1.1 常量(续三)第2章 C+基础 使用符号常量#include void main()#define
3、PI 3.14 const int A=10;cout PI*10*10 n;cout A+20 n;返 回第2章 C+基础2.1 常量与变量2.1.2 变量第2章 C+基础 从键盘输入n的值,计算从1到n的累加和。#include void main()int n,sum=0;cin n;int i;for(i=1;i=n;i+)sum+=i;cout sum n;返 回第2章 C+基础2.2 指针与引用2.2.1 指针0 x3000 0 x3001 0 x3002 0 x3003第2章 C+基础2.2 指针与引用2.2.1 指针 2.第2章 C+基础例2.4 通过指针变量存取变量的值#in
4、clude void main()int a,*p1;double b,*p2;char c,*p3;p1=&a;p2=&b;p3=&c;*p1=10;*p2=11.2;*p3=A;cout a endl;cout b endl;cout c endl;1011.2A100 x2000ap111.20 x2004bp2A0 x200Ccp3第2章 C+基础例2.5 输入a和b两个数,按从小到大的顺序输出#include void main()int a,b;int*p1,*p2,*p;cout a b;p1=&a;p2=&b;if(*p1 *p2)p=p1;p1=p2;p2=p;cout mi
5、n=*p1 max=*p2 endl;请输入两个整数:30 10min=10 max=30&ap1&bp2p30a10b&bp1&ap2&ap30a10b第2章 C+基础2.2 指针与引用2.2.1 指针3.指针作为函数的参数 指针作为函数的参数,实际上传递的是变量的地址,进行的是地址传递。例2.6 指针作为函数参数,被调函数中交换参数值#include void swap(int*x,int*y);void main()int a,b;a=10;b=20;swap(&a,&b);cout a ,b endl;void swap(int*x,int*y)int temp;temp=*x;*x=
6、*y;*y=temp;第2章 C+基础2.2 指针与引用 例2.6 程序运行过程中变量值的变化分析yyb10ax20by&ax&b10temp20ax20by10temp&aax&bb10temp&a&btemp10a20&a&b2010(a)(b)(c)(d)第2章 C+基础2.2 指针与引用2.2.2 引用1.第2章 C+基础例2.7 引用的使用#include void main()int a=1;int c=10;int&b=a;cout a ,b,c endl;b=c;cout a ,b,c endl;b=20;cout a ,b,c endl;定义引用定义引用b,并将其作为,并将其
7、作为a的别名的别名将将c的值赋给的值赋给b,不是将,不是将b作为作为c的别名的别名第2章 C+基础2.2 指针与引用2.2.2 引用(续一)2.#include void swap(int x,int y);void main()int a,b;a=10;b=20;swap(a,b);cout a ,b endl;void swap(int&x,int&y)int temp;temp=x;x=y;y=temp;第2章 C+基础2.2 指针与引用2.2.2 引用(续二)例2.8程序运行过程中参数值的变化图示10axby20axby10temp20axby10temp10axby10temp202
8、02010注意:引用作参数时,函数的实参与形参在内存中共用存储单元,因此形参的注意:引用作参数时,函数的实参与形参在内存中共用存储单元,因此形参的变化会使实参同时变化。变化会使实参同时变化。返 回第2章 C+基础2.3 动态内存分配 在程序运行过程中根据需要动态分配存储空间,不需要时还可以将空间释放,通过new和delete运算符实现。第2章 C+基础2.3 动态内存分配 2.第2章 C+基础例2.9 动态内存分配的使用#include void main()int*p1,*p2;p1=new int(10);p2=new int10;int i;for(i=0;i10;i+)*(p2+i)=
9、i;cout *p1 endl;for(i=0;i10;i+)cout *(p2+i);cout endl;for(i=0;i10;i+)cout p2i “”;/p2i 与与*(p2+i)所访问的数据相同所访问的数据相同cout endl;delete p1;delete p2;100 1 2 3 4 5 6 7 8 90 1 2 3 4 5 6 7 8 9 p2 1 2 3 4 5 6 7 8 9 10 返 回第2章 C+基础2.4 位运算符2.4.1 位运算符 C+使用位运算符可以对数据按二进制位进行操作。1.第2章 C+基础2.4 位运算符2.4.1 位运算符(续)4.00000111
10、70001110072第2章 C+基础2.4 位运算符2.4.2 位运算符应用举例 例2.10 输入变量a,b的值,并将变量a的低4位置为0,将变量b的低4位置为1。#include void main()int a,b;cin a;cin b;a=a&(0 xf);b=b|0 xf;cout a endl;cout b endl;0 xf为十六进制数,它的后四为十六进制数,它的后四位为位为1,其他位均为,其他位均为0。取反后。取反后后四位为后四位为0,其他位均为,其他位均为1。返 回第2章 C+基础2.5 名字空间2.5.1 名字空间的定义与使用 (1)名字空间只能在全局范围那定义,但名字空
11、间是可以嵌套的。(2)一个名字空间可以用另一个名字作为它的别名。例如使用ns1作为上述名字空间NameSpace1的别名,可以用下面的语法:namespace ns1=NameSpace1;第2章 C+基础2.5 名字空间2.5.1 名字空间的定义与使用第2章 C+基础例2.11 名字空间的定义与使用#include namespace ns1 int fun(int x,int y);namespace ns2 int fun(int x,int y);namespace ns3 int fun(int x,int y);int ns1:fun(int x,int y)return x+y;
12、int ns2:fun(int x,int y)return x*y;int ns2:ns3:fun(int x,int y)return x-y;void main()cout ns1:fun(3,4)endl;cout ns2:fun(3,4)endl;cout ns2:ns3:fun(3,4)endl;程序运行结果:7 12 -1第2章 C+基础2.5 名字空间2.5.1 名字空间的定义与使用第2章 C+基础 使用using指令#include namespace ns1int fun1(int x,int y);int fun2(int x,int y);int fun3(int x,
13、int y);int fun1(int x,int y)return x+y;int fun2(int x,int y)return x-y;int fun3(int x,int y)return x*y;using namespace ns1;void main()cout fun1(3,4)endl;cout fun2(3,4)endl;cout fun3(3,4)endl;程序运行结果:7 -1 12第2章 C+基础2.5 名字空间2.5.2 C+标准库 C+标准库就被所有的C+编译器支持,所有标准C+的库都包含在一个单一的名字空间std中。为了使用C+的标准库,可以使用以下指令:using namespace std;例:使用标准库的程序#include using namespace std;void main()cout “本例使用标准库”endl;注意:由于iostream和iostream.h都定义了cout,因此不能同时包含这两个文件,否则将产生二义性。第2章 C+基础谢 谢!