第6章-C++程序设计(谭浩强)电子课件.ppt
文本预览下载声明
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 而形参数组名是指针变量,并不是一个固定的地址值。它的值是可以改变的。在函数调用开始时,它接收了实参数组首元素的地址,但在函数执行期间,它可以再被赋值。如 f(array[],int n) { coutarray; //输出array[0]的值 array=array+3; //指针变量array的值改变了,指向array[3] cout*arrendl; //输出array[3]的值 } 在C++中可以用3种方法访问一个字符串 1. 用字符数组存放一个字符串 定义一个字符数组并初始化,然后输出其中的字符串。 #include iostream using namespace std; int main( ) { char str[]=″I love CHINA!″; coutstrendl; return 0; } 6.4 字符串与指针 2. 用字符串变量存放字符串 例6.11 定义一个字符串变量并初始化,然后输出其中的字符串。 #include string #include iostream using namespace std; int main( ) { string str=″I love CHINA!″; coutstrendl; return 0; } 3. 用字符指针指向一个字符串 例6.12 定义一个字符指针变量并初始化,然后输出它指向的字符串。 #include iostream using namespace std; int main( ) { char *str=″I love CHINA!″; coutstrendl; return 0; } 对字符串中字符的存取,可以用下标方法,也可以用指针方法。 例6.13 将字符串str1复制为字符串str2。 #include iostream using namespace std; int main( ) { char str1[]=″I love CHINA!″,str2[20],*p1,*p2; p1=str1;p2=str2; for(;*p1!=′\0′;p1++,p2++) *p2=*p1; *p2=′\0′; p1=str1;p2=str2; cout″str1 is: ″p1endl; cout″str2 is: ″p2endl; return 0; } 这个例子用来说明怎样使用字符指针。其实,对例6.13来说,用string变量来处理是十分简单的: string str1=″I love CHINA!″,str2; //定义string变量 str2=str1; //将str1复制到str2 对一个数据可以使用“引用”(reference),这是C++对C的一个重要扩充,引用是一种新的变量类型,它的作用是为一个变量起一个别名。假如有一个变量a,想给它起一个别名b,可以这样写: int a; //定义a是整型变量 int b=a; //声明b是a的引用 以上语句声明了b是a的引用,即b是a的别名。经过这样的声明后,a或b的作用相同,都代表同一变量。 *6.9 引用 6.9.1 什么是变量的引用 注意: 在上述声明中,是引用声明符,并不代表地址。不要理解为“把a的值赋给b的地址”。声明变量b为引用类型,并不需要另外开辟内存单元来存放b的值。b和a占内存中的同一个存储单元,它们具有同一地址。声明b是a的引用,可以理解为: 使变量b具有变量a的地址。见图6.26,如果a的值是20,则b的值也是20。 图6.26 在声明一个引用类型变量时,必须同时使之初始化,即声明它代表哪一个变量。在声明变量b是变量a的引用后,在它们所在函数执行期间,该引用类型变量b始终与其代表的变量a相联系,不能再作为其他变量的引用(别名)。下面的用法不对: int a1,a2; int b=a1; int b=a2; //企图使b又变成a2的引用(别名)是不行的 例6.17 引用和变量的关系。 #include iostream #include iomanip using namespace std; int main( ) { int a=10; int b=a; //声明b是a的引用 a=a*a;
显示全部