失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > 黑马程序员C++学习-01

黑马程序员C++学习-01

时间:2021-09-18 09:27:44

相关推荐

黑马程序员C++学习-01

课程视频链接:黑马程序员匠心之作|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》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。