课程视频链接:黑马程序员匠心之作|C++教程从0到1入门编程,学习编程不再难_哔哩哔哩_bilibili
目的:为了区分C语言和C++的区别,并且在学习的过程中,两者进行比较
笔记方式:只写C语言和C++不同的点,因为自己已经学会了C语言,所以只需要知道C++与C语言两者不同的知识点即可,也只需要记录不同的知识点即可
1:使用虚拟机编译c++程序
g++ hello.cpp -o hello
虚拟机使用vscode编写代码,以.cpp为结尾表示为c++程序。它于C语言的编写方式不同,
但是我发现使用g++可以编译c语言,而直接使用gcc无法编译c++程序
第一个储蓄-打印hello world
#include <iostream>//头文件的特点:C++不存在.h,而C语言的头文件是.h结尾一般using namespace std; //模板int main(){cout << "hello world" << endl; //相当于printf("hello world\n"); endl相当于\nreturn 0;}
2:额外补充C语言知识
关于返回的值为地址出现的错误,由于p1保存在常量区(编译器不同,可能会不同)。
而p保存在栈中,会消亡,因此返回一个地址是错误的,并且很危险
3:打印一个变量的值
相比较于c语言:printf("%d\n",a);
int a = 9;cout << a << endl;//endl的意思就是刷新一下缓冲区,类似于C语言的\n也是强制刷新一次缓冲区
尝试一下是否:cout << "a="a << endl;是否可行,发现无法实现
尝试:C语言的printf("a=%d",a);
int a = 9;cout << "a="<<a << endl;
字符串和变量名不能放在一起表示
4:常量-const修饰的叫常变量,实际上还是变量,我们可以从预处理可以看出
5:float和double
加f是因为:float会被编译器自动转换为doble,C语言也是这个性质特点,因此强制性使用float的时候需要加f。如果不是为了省空间(单片机使用)一个四字节一个8字节(这个也不一定,在单片机中会被硬件限制)
6:转义字符的输出
C语言中一般是:printf("%d\n",i); printf("\n");
而在C++中,是需要单独写出来的,标记红色的是错误的,12错误,34正确
7:字符串输出
字符串的输出C语言和C++有所不同。在C语言中打印一个字符串的话,要么直接打印,要么使用字符数组(字符串数组),前者不可更改,后者可以更改
C++使用string定义一个字符串,使用修饰符string直接产生一个字符串变量,但是需要加一个头文件#include <string>
其中能修改ch的值---但是在C语言中,不能直接赋值字符串,需要借助字符串函数才能实现。
因为在C语言中,char str[] = "abcd",str是一个地址,是一个常量。但是char *str = "abcd";这样却可以改变值,这个成功与非取决于编译器,因为有些编译器默认会把str设置为const
8:布尔类型
在C语言中是不存在布尔类型的,而在C++中存在布尔类型
首先:布尔类型其实就是真与假,但是如果输出的话,其代表的值为只有1和0,当我们为布尔类型变量赋值的时候(非0为真,0为假)---输出(1和0)
bool a = true;bool b = false;bool c = 0;bool d = 6;cout << a << endl; //1cout << b << endl; //0cout << c << endl; //0cout << d << endl; //1
可以直接赋值true和false,不能大小哦,因为true是关键字
bool a = 3;bool b = -1;bool c = 0;cout << a << endl; //1cout << b << endl; //1cout << c << endl; //0
可以直接输出true和false的值
cout << true << endl; //1cout << false << endl; //0
9:数据输入
类似于C语言的scanf,使用cin进行,cout和cin,一个出一个进
注意点就是:<< 和 >>,cin使用>> cout使用<<。并且不需要endl
如果觉得《黑马程序员C++学习-01》对你有帮助,请点赞、收藏,并留下你的观点哦!