**
《C++快速入门》(小甲鱼)1:
**
-
C++的文件名后缀是.cpp,在另一个系统下是.cc -
C++中的输出语法:cout ,它使用的头文件是#include<iostream> -
流操作符:<<(将它流向过去)(和C当中的左移操作符不同)
cout<<"结果是:"<<addArray(data,size)<<end1;
将“结果是:”这个字符串流向了cout对象,将addArray(data,size)这个结果流向了cout对象,
将end1这个结束流向了cout对象。
-
输入流:可以将它看作一个数组或者链表,是一个存取我们键盘输入的地方,是一个仓库。 -
输出流的概念  -
名字空间:using namespace std;  若没有using namespace std;程序会显得很麻烦:   -
C语言——屏蔽空格:while((ch=getchar())==‘ ’); getchar()接收一个字符然后赋值给ch,如果接受到的字符是空格则循环函数,否则跳过 C语言——将变量ch中存放的字符退回给stdin输入流:ungetc(ch , stdin); -
cin:是一个输入流的对象,作用是接收输入。 istream这个类里面的所有的对象都是教这个C++程序如何从用户终端读取数据 终端的意思是:一台或者计算机系统,用来让用户输入数据,及显示其计算结果的机器  内容:
一、cin>>
用法1:输入一个数字或字符
#include using namespace std; main () { int a,b; cin>>a>>b; cout<<a+b<<endl; }
用法2:接收一个字符串,遇“空格”、“TAB”、“回车”就结束
#include using namespace std; main () { char a[20]; cin>>a; cout<<a<<endl; }
输入:jkljkljkl 输出:jkljkljkl
输入:jkljkl jkljkl //遇空格结束 输出:jkljkl
二、cin.getline()
用法:接收一个字符串,可以接收空格并输出
#include using namespace std; main () { char m[20]; cin.getline(m,5); cout<<m<<endl; }
输入:jkljkljkl 输出:jklj
接收5个字符到m中,其中最后一个为’\0’,所以只看到4个字符输出;
如果把5改成20: 输入:jkljkljkl 输出:jkljkljkl
输入:jklf fjlsjf fjsdklf 输出:jklf fjlsjf fjsdklf
延伸:
1、cin.getline()实际上有三个参数,cin.getline(接收字符串的变量,接收字符个数,结束字符) 2、当第三个参数省略时,系统默认为’\0’ 3、如果将例子中cin.getline()改为cin.getline(m,5,‘a’);当输入jlkjkljkl时输出jklj,输入jkaljkljkl时,输出jk
三、cin.ignore()
cin.ignore(8);
代表忽略前八个字符
四、cin.peek()
用法:其功能是从输入流中读取一个字符 但该字符并未从输入流中删除,其返回值是一个char型的字符。
 输入流有几个字符,while就循环几次。
五、cin.get()
用法:用于获取一个字符
 字符有多长,while就循环多少次。
const int size = 50 代表size定义为50 这种语句比在头文件下宏定义# define size 50 更有优势
六、cin.read()
用法:cin.read(c, n)从字符串流中读取n个字符到c数组中
七、cin.gcount()
用法:返回上一次输入操作被读入的字符的数目
八、cin.write(c,n)
用法:输出数组c中的前n个字符
九、cout.precision(val)
用法:在输出的时候,设定输出值以新的浮点数精度值显示,即小数点后保留val位
cout.precision(val)
val:小数点后保留val位。
十、关于函数的重载
C++允许在同一作用域中声明几个类似的同名函数
作用:重载函数通常用来在同一个作用域内 用同一个函数名 命名一组功能相似的函数,这样做减少了函数名的数量,避免了名字空间的污染,对于程序的可读性有很大的好处。
十一、传值,传址和传引用
传值 | 这种传递方式中,实参和形参是两个不同的地址空间,参数传递的实质是将原函数中变量的值,复制到被调用函数形参所在的存储空间中,这个形参的地址空间在函数执行完毕后,会被回收掉。整个被调用函数对形参的操作,只影响形参对应的地址空间,不影响原函数中变量的值,因为这两个不是同一个存储空间。 |
---|
传址 | 传址方式:将实参的地址传递给函数,在函数内对形参进行操作等同于对实参进行相同的操作,在函数调用结束返回后,形参被释放,实参的内容是对形参进行操作后的结果。 | 传引用 | ,形参是引用类型变量,其实就是实参的一个别名,在被调用函数中,对引用变量的所有操作等价于对实参的操作。这样,整个函数执行完毕后,原先的实参的值将会发生改变。 |
传引用方式效率的更高效一些,因为它没有对形参进行一次拷贝
|