【C++】带你从 C语言 入门 C++

最近我开始学习了 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大家可能并不陌生,就是流的意思,这个头文件表示的就是 输入/输出流

如果大家想了解更多的 C++的头文件,可以浏览一下这个网站
C++库函数相关头⽂件:https://zh.cppreference.com/w/cpp/header
在代码中如果使⽤了某个头⽂件中的定义,就得包含对应的头⽂件
注:
1. 在C语⾔中头⽂件的扩展名是 .h ,但是C++中的⽤法发⽣了⼀些变化,对⽼式C的头⽂件保留了扩展名 .h ,但是C++⾃⼰的⽂件没有扩展名了。C语⾔头⽂件:
https://zh.cppreference.com/w/c/header
2. 有些C的头⽂件被转换成C++头⽂件,这些⽂件名被重命名,去掉了.h扩展名,并在⽂件名的前⾯加
上了前缀c(表⽰来⾃C语⾔);例如:C语⾔中有关数学的头⽂件名字是 math.h ,在C++中就
cmath 。当然还得注意,有时头⽂件的C语⾔版本和C++版本相同,⽽有时候,新版本做了⼀些
综上所述,大家在写 C++代码的时候最好用 C++自带的头文件,以防出错

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。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值