《C++ Primer Plus》第二章 开始学习C++

mac2022-06-30  28

重要知识点

2.1 进入C++

C++对大小写敏感,也就是说区分大写字符和小写字符;对全角字符和半角字符敏感。在visual studio空项目中运行程序,运行结束后可能会自动结束程序。这时候可以用代码:system("pause");使窗口一直打开。

system("......"); 该函数等价于在运行程序时,在cmd命令提示行中输入双引号中的命令。 比如system("cls");表示清除屏幕。

程序的基本结构如下: int main() 函数头 { statements return 0; 返回语句 函数体 }5行代码构成了函数定义 C++句法要求main()函数的定义以int main()开始。C++中,每条完整的指令称为语句,所有的语句以分号结束。名称空间 <iostream>库中的cin和cout函数均需要使用标准的命名空间。使用命名空间里面的名称有三种方法。 1 using namespace std; //using namespace std; 语句可以放在某一个函数中,仅仅让该函数使用标准命名空间。 cin >> N; cout << N << endl; 2 std::cin >> N; std::cout << N << std::endl; 3 using std::cin; using std::cout; using std::endl; cin >> N; cout << N << endl; \n表示换行符(和endl命令等价)。\t表示tab字符。如果在字符串中需要输入\时,用\\来代表。在C++中,不能把空格、制表符或回车放在元素中间,也不能把回车放在字符串中间。一行代码中不可分割的元素叫做标记,通常,必须用空格、制表符或回车将两个标记分开。空格、制表符和回车统称为空白。

在有些情况下,两个标记既可以用空白分开,也可以用小括号分开。 比如: return 0;和return(0);都是合法的。

2.2 C++语句

声明语句和赋值语句: int carrots; carrts = 25 程序中的声明语句叫做定义声明语句,简称为定义。赋值语句可以连续运用赋值运算符,比如:a = b = c = d = 4;,此时,赋值将从右向左进行。

2.3 其他C++语句

2.4 函数

x = sqrt(6.25)语句中,sqrt(6.25)被称为函数调用。被调用的函数叫做被调用函数,包含函数调用的函数叫做调用函数。用户定义的函数 int Function1(int); 函数原型语句 如果不添加函数原型语句,应当将函数定义放在调用函数之前。 int main() { int N; N = Function1(1); return 0; } int Function1(int n) 第一个int是返回给调用函数的信息,叫做返回值; 第二个int是传递给被调用函数的信息,叫做参数。 { statements; return n; } 如果函数不需要返回值,可以使用void; 如果函数不需要参数,圆括号中可以使用void,也可以省略。

默认值参数

在编写函数时,可以预先对形参提供一个默认值,当用户调用函数时没有提供实参时,则C++使用默认值.

当用户提供实参时,C++优先使用实参.提供默认值参数时,若先定义后调用,则在定义中提供默认值;若先声明在使用最后定义,在声明时提供默认值.(在定义中使用默认值无意义).

下面是示例:

#include <iostream> using namespace std; void Function1(int = 2, int = 3); void Function2(int x = 2, int y = 2) { cout << x - y << endl; } int main() { Function1(); Function1(5); Function1(3, 5); // Function2(); Function2(6); Function2(3, 30); return 0; } void Function1(int a, int b) { cout << a + b << endl; }

输出结果:

5 8 8 0 4 -27
注意:
形参调用时不一定按照顺序.因此要避免max(a, ++a)这样的写法.在函数中对形参进行操作而修改的内存空间对外面的实参不造成任何影响.函数声明中的形参标识符和函数定义中的形参标识符可以不相同.C++编译只考虑对应的位置.因此声明时也可以不提供形参标识符.因此,下面两种声明都是可行的: #include <iostream> using namespace std; void Function1(int, int); void Function2(int x, int y); int main() { Function1(1, 2); Function2(2, 4); return; } void Function1(int a, int b) { cout << a + b << endl; } void Function2(int m, int n) { cout << m - n << endl; }

inline 内联函数(简单了解)


课后编程练习

#include <iostream> using namespace std; int main() { cout << "Name : Niu Juxin\n"; cout << "Address : Qingdao, Shandong province" << endl; return 0; } #include <iostream> using namespace std; int main() { int longDis; cout << "Enter a distance in long : "; cin >> longDis; cout << longDis << " long = " << 220 * longDis << " yards.\n"; return 0; } #include <iostream> using namespace std; void Print1(); void Print2(); int main() { Print1(); Print1(); Print2(); Print2(); return 0; } void Print1() { cout << "Three blind mice\n"; } void Print2() { cout << "See how they run\n"; } #include <iostream> using namespace std; int main() { int yrs; cout << "Enter your age: "; cin >> yrs; cout << yrs << " years includes " << yrs * 12 << " months.\n"; return 0; } #include <iostream> using namespace std; double celToFah(double); int main() { double Celtem; cout << "Please enter a celsius value: "; cin >> Celtem; cout << Celtem << " degrees Celsius is " << celToFah(Celtem) << " degrees Fahrenheit.\n"; return 0; } double celToFah(double ans) { return (ans * 1.8 + 32); } #include <iostream> using namespace std; double lightYearToAsUnit(double); int main() { double LightYear; cout << "Enter the number of light years: "; cin >> LightYear; cout << LightYear << " light years = " << lightYearToAsUnit(LightYear) << " astronomical units.\n"; return 0; } double lightYearToAsUnit(double lys) { return (lys * 63240); } #include <iostream> using namespace std; int hrs, mins; void PrintOut(int, int); int main() { cout << "Enter the number of hours: "; cin >> hrs; cout << "Enter the number of minutes: "; cin >> mins; PrintOut(hrs, mins); return 0; } void PrintOut(int h, int m) { cout << "Time: "; cout << h << ":"; if(m >= 10) cout << m; else cout << "0" << m; cout << endl; }
最新回复(0)