最近我开始学习了 C++。这本语言。我博客的内容会从之前 c 语言相关的内容转向 C++的,但是这两门语言中重复的内容我会告诉你应该去哪一篇文章上看,就不再重复的赘述了。这篇文章适合学过C语言,但没学过或者初学C++的人学习
1. 一个简单的C++程序
#include<iostream>
using namespace std;
int main()
{
cout << "Hello,World"<<endl;
return 0;
}
如果你是第一次看C++的程序,或者你之前从未学习过 C++ ,那你肯定很疑惑,不过不用担心,且听我给你解释
1.1 头文件
#include<iostream> 这是一个 C++ 极其常用的头文件,其中 i 表示input,o 表示 output,stream大家可能并不陌生,就是流的意思,这个头文件表示的就是 输入/输出流
1.2 cout << 和 cin >>
C++中的 cout 和 cin 其实分别对应的是 c 语言中的 printf 和 scanf, 相比于 c 语言,这种写法就简洁多了,而且有一个使我们写代码很便捷的优势,就是我们自己在写代码的时候不再需要确定我们需要输出或者是输入的内容的格式。
#include<iostream>
using namespace std;
int main()
{
int a = 3;
cout << a << endl;
//对应C语言中的换行符
printf("%d\n", a);
return 0;
}
大家可以看到,在 print f 中我要先声明这个数字是 % d,也就是整型,然后再输出它,但是在 C++中就不必这么麻烦,你只需要在 cout。之后打两个箭头,输出 a 就可以了。
1.2 using namespace std
这也是一个 c 语言中没有但是在 C++中非常常用的符号,它也发挥着类似头文件的作用。在我们程序中的 cout 和 cin 只有在声明了他之后才能够使用。
但需要注意的是,在声明了之后,我们在输创建变量或者是其他的一些像类型名。定义宏的时候,我们就不能和像 cout,cin 这样的关键字重复了,意思是说 int cout = 2; 这样的语句再声明了之后是不被允许的。因为你这和 C++本身定义的符号产生了冲突
如果你理解了上面的那个,你现在可以再看看这串语句的意思,namespace 他就有点像你认识两个朋友,他们两个是相同的名字,你为了区分它们,就用它们的各自所在的地方的不同来区别他们。就比如有两个朋友就重名。一个在湖南,所以我一般叫他湖南彭于晏。另外一个在江西,我一般叫他叫江西彭于晏😂
这样你或许就能理解了,C++在创建的时候为他们的关键字专门开辟了一块空间。你如果不去使用他们的关键字,你就可以不必声明这个,那自然就不会反问他们所创造的空间,然后你可以任意的在创建变量的时候无所顾忌,但是你如果声明了,你就可以自由的使用里面它已经定义好的一些关键字。但是与此同时,你所创建的变量不能与此产生冲突。
2.数值溢出
在几乎所有的编程语言中,都会创建各种各样的类型名来描述生活中的量。c 语言中的 int ,char,这些数据类型也都有它们的取值范围。如果超出了范围就会产生溢出的现象。
#include<iostream>
#include<climits> //对应C语言中的<limits.h>
using namespace std;
int main()
{
cout << CHAR_MIN << ' ' << CHAR_MAX << endl; //-128 127
cout << INT_MIN << ' ' << INT_MAX << endl; //-2147483648 2147483647
return 0;
}
大家如果想了解各个数据类型的范围的话可以在包含 climit 这个头文件的同时,像我一样。去输出这样的内容就可以得到答案了
#include<iostream>
using namespace std;
int main()
{
char a = 'z';
char b = 'z' + a;
cout << b << endl; //输出不显示内容
cout << (int)b << endl; //-12
printf("%d\n",b); //-12
return 0;
}
可以看到,当数值溢出的时候,如果我们以常规的 C++的方式去输出,是不显示内容的。那这里为什么会显示-12呢?可以看看下面这串代码
#include<iostream>
using namespace std;
int main()
{
char a = 'z' + 5; //已知 'z' 是122位
char b = 'z' + 6;
cout << (int)a << endl; //127
cout << (int)b << endl; //-128
return 0;
}
其实 char 这个取值范围是-128到127,这其实是一个轮回,当我们数值达到127的时候,再加1就是-128。


900

被折叠的 条评论
为什么被折叠?



