一段开启学习C++的历程,一段重温C++并深入探讨的故事
1.c++中的数据类型bool类型只能是true和false(它们必须以小写字母写出)
2从技术上讲,c++不必在函数原型(prototype)里给输入参数起名字,但那么做是一个好习惯。
3.这两个单词代表的意思可并不相同 parameter实参 argument 形参
4.创建带有输入参数函数:
给函数的输入参数设置默认值
在函数原型中:
void FN(int i , int j=6);
以下都是合法的调用:
FN(1);
FN(5,7);
在设置默认值是,需要注意的是,必须把所有的必选参数放在可选参数之前
void FN(int n1, int n2=6, int n3=17); ----这个是合法的
void FN(int n1=1, n2); ----这两个是不合法的
void FN(int n1, n2=6 ,n3);
C++允许为函数的输入参数设置默认值,这是c++的新增功能,而c语言不支持这种做法。
5.数组与指针
????数组下标是从0开始的,因为这个缘故,很多人犯了"差一个"错误。 ????而为什么数组下标是从0开始的?源自于C编译器设计者的习惯使然!因为早期的C语言经常跟C编译器设计者打交道,他们脑海中的“偏移量思想”已经根深蒂固。
论指针和数组的关系: 先告诉什么是地址及重要性
讨论地址和指针的关系
介绍指针一项重要应用:利用指针改变变量的值
再讨论数组和指针的关系
论函数参数的值传递,地址传递,及c++新增的功能–>引用传递
6.使用GNU编译器
????一段源程序首先通过预处理,编译,汇编,然后链接,最终生成一个可执行文件(若想要有志深入细节,请阅读------俞甲子老师《程序员的自我修养》)
$ g++ prog1.cc -o prog1
此命令会产生一个名为prog1(UNIX/Linux操作系统)
和prog1.exe(在windows操作系统)
????1.注意-o prog1是编译器参数以及用来存放可执行文件的文件名 若没有这个参数,则在Linux下产生a.out而在Windows下产生a.exe的可执行文件。 【c++程序的常见扩展名】取决于所具体运行的编译器
.cc .cpp .cp .cxx
7.iostream库
????iostream库是istream(输入流)和ostream(输出流)组合而成,术语流极其想表达出字符随着时间顺序生成和消失的特点。
#include<iostream>
int main(){
std::cout<<"hello,world";
return 0;
}
std::涉及命令空间(namespace)这个高级概念,你现在照着写就行了 如果你厌烦了总是写出是std::,可以加上这句话,就可以只写cout了
#include<iostream>
using namespace std;
int main(){
cout<<"hello,world";
return 0;
}
std::cout ::这个叫做作用域操作符,表示使用的是定义在命名空间std中的cout
8.注释
????当代码和注释保持一致更新,错误的注释比没有注释更糟糕,因为它会误导后来者。
编译器会忽视注释,记住注释对不能嵌套!
9.如何看待<>和""定义头文件
????严格的讲,标准库用<>,而非标准库(自己定义的)则用""括起来
|