对于我这个大四学生,周围的一切都显得那么苍白。不过活着在于折腾 ,从今天开始,我开始写一些列的博客,首先就从这个类似读书笔记的系列开始。把看书的心的体会还有自己的一些想法发布在这里,欢迎大家多多交流。
在读这本书之前对于C++印象只停留在课堂上和考试突击,之后基本在看C和java。好不多说,能有开始,就要继续下去。在有写这个读书笔记之前我已经把中文版的cp4看到了第三章,所以今天就把之前看的三张的心得与大家分享。
(1)首先要介绍的就是输入输出流,这里印象深刻的是输入输出操作符<<(输出)和>>(输入),<<,>>都接受两个操作数,左操作数<<右操作数,c++中每个操作数都会产生一个结果,也就是操作符作用到操作数上所产生的值。<<和>>也是操作符,当然也返回值。操作符对操作数是有要求的,对于<<和>>左操作数必须是iostream对象,而有操作数则是要输出的对象(可以使字面值,string对象,内置类型等等),下面举一个例子:
std::cout<<"hello dongxu"<<std::endl;
这里其实是可以分开写的
std::cout<<"hello dongxu";
std::cout<<std::endl;
也就是最左边的输出操作符返回一个ostream对象(输入和输出操作符都是返回iostream对象),这正好满足了第二个操作符的左操作数(一个ostream对象)。
endl这里是一个特殊值,称为操纵符(manipulator),把他写入输出流是,有换行效果,同时刷新“关联缓冲区”(不懂。。)
根据上边<<的连续写入输出流,对输入流同样有
std::cin>>v1>>v2;
//等同于
std::cin>>v1;
std::cin>>v2;
记住操作符返回的还是一个iostream,所以可以继续当做左操作数。
(2)记住for循环的测试条件
(开始)
<判断>
[do]
[循环控制变量自增]
(3)while循环的测试条件可以是一个输入表达式
如
while(std::cin>>value)
{
//.....遇到文件结束符(win下是ctrl+z)
//结束,或者遇到无效输入时如需要输入的
//是字符,但是输入的是一整形也会停止
}
#include<iostream>
using std::cin;
using std::cout;
using std::endl;
int main()
{
int v;
while(cin>>v)
{
cout<<v<<endl;
}
return 0;
}
所以上边对于整形v来说这个循环如果你输入1.3(浮点型)则循环会自动退出。
(4)基本类型比c多了bool(布尔),wchar_t(宽字符)这两种,int,char,bool统称为整型(integral type)wchar_t则是用来一个byte表示不了的字符,不如一个汉字等。
字长问题再强调一遍:short半个word,int一个word,long为一个或者一个半word。32位机中int和long通常相等。bool可以把任何算数类型赋给bool对象,0为false,而任何非0都是true。