《C++ Primer Plus》第七章学习笔记

 

79:要使用C++函数,需要完成:

        1、提供函数定义;

        2、提供函数原型;

        3、调用函数。

 

80:函数如何返回值:通过将返回值复制到指定的CPU寄存器或内存单元中来将其返回,随后调用程序将查看该内存单元。(通过学习计算机组成,这个寄存器是$v0和$v1)

 

81:C++的编程风格是将main()放在最前面,因为它通常提供了程序的整体结构。

 

82:Cin.get()函数读取所有的输入字符,包括空格和换行符。

 

83:Int fun(int a[],int n)  ,其中a实际上并不是数组,而是一个指针。

 

84:比较: int fun(int a[],int n) 和 int fun(int* a, int n)。这两个函数头都是正确的,在C++中,当(且仅当)用于函数头或函数原型中,int* a和int a[]的含义才是相同的。它们都意味着a是指向int的指针。一般来说,用int a[]来表明a是数组;用int* a来表明a指向一个独立的值。

 

85:就目前而言,请记住两个恒等式:1、a[i] == *(a+i)   2、&a[i] == a+i

 

86:为了防止函数无意中修改数组的内容,可在声明形参时使用关键字const,例如,void fun(const double a[], int n),意味着函数中不能使用a修改这些数据。

 

87:对于处理数组的C++函数,传统的方法是传递数组地址和数组长度;另一种方法是传递数组的起始和结束地址。

 

88:两种不同的方式将const用于指针:

        1、让指针指向一个常量对象,防止使用指针修改指针所指向的值;

        2、将指针本身声明为常量,防止改变指针指向的位置。

 

89:Int age = 39;

        Const int* pt = &age;

        *pt = 20;                              //错误

        Age = 20;                             //正确

并不是说pt指向的值是常量,而是意味着pt不能修改这个值,但可以通过变量名修改。

 

90:C++禁止将const对象的地址赋给常规指针。

 

91:返回C风格字符串的函数:在函数中用new,返回地址,在函数外delete。

 

92:若有语句int number; cin >> number; 然后输入了一个字符a,则cin返回值为false,a仍然留在输入队列中,此时cin不能再读取,若想让cin继续读取,则需要 cin.clear(),还需要丢弃输入队列中的字符:使用while(cin.get()!= ‘\n’)continue来丢弃字符。

 

书中的错误:

P189 n_chars函数中的<应改为>;

P192倒数第五行的I应改为i,”ar”少了一个r;

P194程序说明第二行的“16”应改为“32”;

P202 sum函数中的c没有定义。

 

posted on 2012-01-19 12:50  zyearn  阅读(120)  评论(0编辑  收藏  举报