到’\0’的地方之间的内容全部输出。
补充:在 C 语言中 printf(“%s”,串首地址)用来输出字符串,printf(“%c”,字符)用来输出字符,
如果用 printf(“%c”,字符地址)则会将字符地址对应的 ASCII 码变成字符输出。
【指针,数组】*11. 若有如下定义:char *aa[2]={"abcd","ABCD"};则可以这样理解:*aa 存
放的是指针数组的首地址,aa 中存放的是地址的地址,故输出 aa 会显示一段地址。具体如
下:
cout<<aa<<endl;// 地址
cout<<*aa<<endl;// abcd
cout<<aa[1]<<endl;// ABCD
cout<<*aa+2<<endl;// cd
cout<<aa[1]+2<<endl;// CD
cout<<*(aa[1]+2)<<endl;// C
cout<<*aa[0]+2<<endl;// 99
cout<<*aa[0]<<endl;// a
cout<<*aa[1]<<endl;// A
补充:常用 ASCII 码值:0---48,A---65,a---97
【const,指针】12. 分为以下三类:(谁是常量谁就不能被修改)
(1)指向常量的指针:const char *name = “liu”;
(2)常指针:char s[]=”abcd”; char *const p=s;
(3)指向常量的常指针:const char * const name=”liu”;
【引用,指针】13. C++语言中引用与指针有哪些区别?
答:(1)指针是指向对象或变量的地址,指针通过某个指针变量指向一个对象后,对所指向
的变量间接操作。引用实际上是所引用的对象或变量的别名,对引用的操作就是对目标变量
的操作。
(2)引用在定义时必须初始化,而指针在定义时不必初始化。
(3)不存在指向空值(void)的引用,但是存在指向空值(NULL)的指针。
(4)引用在初始化后不能改变引用关系,而指针可以随时改变所指的对象(非 const 指针)
(5)引用本身不占存储单元,系统也不给引用分配存储单元。不能建立数组的引用。
【静态成员函数】14. 当成员函数不访问非 static 类数据成员时,才声明为 static。静态成员
函数没有 this 指针,因此无法对一个对象中的非静态数据成员进行直接访问。
【构造函数】15. 成员对象的构造函数的执行顺序仅与成员对象在类中声明的顺序有关,而
与成员初始化列表中给出的成员对象的顺序无关。
【拷贝构造函数】16. 拷贝构造函数的作用是,用一个已存在的对象去初始化一个新的同类
对象,也可以说是用一个已知的对象去创建另一个同类对象。调用时机如下:
(1)当定义对象时,用一个对象去初始化该类的另一个对象。
(2)如果函数的形参是类的对象,调用函数时使用的是值传递方式进行形参和实参的结合。
(3)如果函数的返回值是类的对象,函数调用完成时,可调用拷贝构造函数。
注意:将类的一个对象赋予该类的另一个对象时,不会调用拷贝构造函数。