【漫漫转码路】Day 28 C++ day01

C++

环境

编译器:Visual Studio
安装好之后在工具—获取工具和功能,除系统默认的外,再勾选这些
仅限windows10系统
在这里插入图片描述
然后在文件—新建—项目—控制台应用—下一步
可以看到搭建完成环境

Hello World

按照上述步骤完成之后可以发现界面已经默认了打印Hello World

#include <iostream>

int main()
{
    std::cout << "Hello World!\n";
    return 0;
}

上述文件之间点击运行,可以出现“Hello World”

其中,#include <iostream>意思是引入iostream库,即输入输出流库,#include是标准的C++头文件,任何符合标准的C++开发环境都有这个头文件。在旧的标准C++中,使用#include<iostream.h>,但在新标准中,用#include。

int main()这一行为主函数(main function)的起始声明。main function 是所有C++程序的运行的起始点。 不管它是在代码的开头,结尾还是中间 - 此函数中的代码总是在程序开始运行时第一个被执行。并且,由于同样的原因,所有 C++程序都必须有一个main function。main 后面跟了一对圆括号),表示它是一个函数。C++中所有函数都跟有一对圆括号 ().括号中可以有一些输入参数。如例题中显示,主函数(main function)的内容紧跟在它的声明之后,由花括号 {} 括起来。

std::是使用C++标准程序库的标识符,C++标准程序库中的所有标识符都被定义于一个名为std的namespace中,可以有三种方法调用
1、直接指定标识符:std::cout<<std::hex<<3.4<<std::endl;
2、使用using关键字:加入using std::cout; using std::endl; using std::cin
1中的句子可以写成cout << std ::hex << 3.4 << endl;
3、使用using namespace std:在开头位置使用

cout是标准输出流,cout <<后面是输出内容

return 0是返回值,表示程序正常运行结束,返回0

运行结果:

显示:
Hello World!

注意:所有语句后面+;

注释

双斜杠表示单行注释
斜杠+*表示多行注释

// 单行注释
/*
多行注释
*/

变量

C++中的变量一定是有类型的
Int和float都占4个字节
变量名不能以数字开头,只能包含字母数字下划线
变量名不能与C++关键字相同,
变量之间不能有空格
Int可以表示的有符号的数在-2147483648到2147483647之间
无符号的数在0到4294967295之间
float:浮点数
double:双精度浮点数
char:单字符,占一个字节,8个bits
bool:0是False,非0是True
所有变量都需要先声明再使用

int a, b, c = 10;
//声明并赋值:a,b,c都是整型
int a;
int b;
int c = 10;
unsigned int a;
//a是无符号整数,0到40亿,一般不要用无符号声明

变量遵从作用域
全局变量,可以在全局使用,局部变量不能在全局使用

变量初始化

int a=3;  //常用这种初始化方法
int a(3);

int只能存整数,如果存了浮点型,会被截断,也就是小数点后面的数被删掉,不是四舍五入

//例如
#include <iostream>
using namespace std;
int main()
{
    int a = 3.5;
    cout << a;
    return 0;
}
//显示
3

整型初始化为字母这种,会返回对应的ASCⅡ码

//例如
#include <iostream>
#include <string>
using namespace std;
int main()
{
    char a = 'a';
    int b = a;
    cout << b;
    return 0;
}
//显示
97

字符7-0

//例如
#include <iostream>
#include <string>
using namespace std;
int main()
{
    char a = '7';
    int b = a - '0';  // 字符7减去字符0
    cout << b;  // 结果是7
    return 0;
}
//显示
7

同理,字符j-a

//例如
#include <iostream>
#include <string>
using namespace std;
int main()
{
    char a = 'j';
    int b = a - 'a';  // 字母减字母
    cout << b;
    return 0;
}
//显示
9  // 是j在英文字母中的序号

常量

常量在定义之后,不能被修改

//例如
#include <iostream>
using namespace std;
int main()
{
    const int a = 3;
    cout << a;
    a = 4; // 会报错
    return 0;
}
//显示
错误(活动)	E0137	表达式必须是可修改的左值	ConsoleApplication2	D:\MySoftware\Visual 
错误	C3892	“a”: 不能给常量赋值	ConsoleApplication2	D:\MySoftware\Visual 

使用预处理器指令#define,你可以将那些你经常使用的常量定义为你自己取的名字而不需要借助于变量。

//例如
#include <iostream>
#include <string>
using namespace std;
#define PI 3.1415926  // 用define定义常量,后面可以直接用
int main()
{
   
    cout << PI;  // 不会报错
    return 0;
}

字符串控制字符

符号意义
\n换行
\r回车
\t跳跃
\v垂直跳跃
\bbackspace
\fpage feed
\a警告
\‘单引号
\”双引号
?问号
\反斜杠

后四个类似于转义

//例如
#include <iostream>
#include <string>
using namespace std;
int main()
{
   
    cout << "Hello World\r123";
    cout << "Hello World\t123";
    cout << "Hello World\v1123";
    cout << "Hello World\b23";
    cout << "Hello World\f23";
    cout << "Hello World\a23";
    return 0;
}
//显示
123 o World  // 123占据了Hello的位置,且在123之后多占据了一个
Hello World     123  //Hello World后面一个空格,然后四个空位,制表
Hello World1123  // 垂直制表,即将光标放到下一行同样的位置
Hello Worl23  // 将光标回退一位,并且将后面的字符串覆盖掉前面最后一位,这里'd'被覆盖掉
Hello World23  // 将光标放到下一页,换页符
Hello World23  // 会有警告的声音

操作符

加+减-乘*除/取模%等于=
C++拥有而其他语言没有的一个特性是赋值符 (=) 可以被用作另一个赋值符的 rvalue(或rvalue的一部分)。

a = 2 + (b = 3);

等价于

b = 3;
a = 2 + b;

操作符连等的时候,从右往左依次赋值

a = b = 3;

对于除法

//例如
#include <iostream>
#include <string>
using namespace std;
int main()
{
    int b = 3;
    int a = 2;
    cout <<b / a;
    return 0;
}
//显示
1  // 两个整型相除只能是整型,会对结果进行取整操作,就是整数之后全部删掉

如果想要得到浮点型,可以采用以下操作
整数除以浮点数,或者强制类型转换

//方法一
int b = 3;
float a = 2.0;
//方法二
int b = 3;
double a = 2.0;
//方法三
int b = 3;
double a = 2.0;
cout << b / float(a)   //强制类型转换,成浮点型,(float)a也一样
//例如
#include <iostream>
#include <string>
using namespace std;
int main()
{
    int b = 3;
    float a = b / 2;  // b/2得到的结果已经是1了,再赋值给a,依旧是1
    cout << a;
    return 0;
}
//显示
1

除数不能为0,会崩溃

组合运算符

+=,-=,*=,/=,%=
+=的优先级小于+

 int b = 3;
 b += 3 + 2;  // 先算3+2得到5,然后算b+=5

++等价于自增1
–等价于自减1

a++
//a = a + 1
a--
//a = a - 1

注意
a++与++a

//例如
#include <iostream>
#include <string>
using namespace std;
int main()
{
    int b = 3;
    int a = b++;
    cout << a << " "<< b;
    return 0;
}
//显示
3 4  //先执行a = b,然后执行b++
//例如
#include <iostream>
#include <string>
using namespace std;
int main()
{
    int b = 3;
    int a = ++b;
    //int c = ++b;
    cout << a << " "<< b;
    return 0;
}
//显示
4 4  //先执行b++,然后执行a = b

输入

int b = 0;
scanf("%d , &b")  //从控制台读取一个数字赋值给b

综合题

运算顺序

//例如
#include <iostream>
#include <string>
using namespace std;
int main()
{
    int a = 4;
    int b = 4;
    int c = 0;
   c += a / b ++;
    cout << a << " "<< b << " " << c;
    return 0;
}
4 5 1  // 先算a/b得到1,再算b++得到b=5,最后算c+=1得到c=1

条件语句if

if…else…

//例如 
#include <iostream>
#include <string>
using namespace std;
int main()
{
    int a = 4;
    int b = 0;  //先声明变量
    if (a > 4)  //if语句不用加;,但是后面的语句需要在{}里面
    {
        b = 0;
    }
    else
    {
        b = 1;
    }
   
    cout << b;
    return 0;
}
//显示
1

if后面接字符串,即视为True,可以进入判断
如果if后面是0,则会进行else里面的语句
与&&,或||
与:两边同时满足则为True
或:一边满足即为True
如果逻辑运算不加括号,就是从左到右

//例如
#include <iostream>
#include <string>
using namespace std;
int main()
{
    int a = 4;
    int b = 0;
    int c = 2;
    if (a > 3 && b > 3 || c < 3)  //a > 3通过,b > 3 || c < 3也通过
    {
        cout << "这是奇数";
    }
    else
    {
        cout << "这是偶数";
    }

    return 0;
}
//显示
这是奇数
//例如
#include <iostream>
#include <string>
using namespace std;
int main()
{
    int a = 4;
    int b = 0;
    int c = 1;
    if (c = 3)  //里面可以是赋值语句等其他语句,但是最终的落脚点要落在是不是0上面
    {
        b = 1;
    }
    else
    {
        b = 2;
    }
   
    cout << b << " " << c;
    return 0;
}
//显示
1 3  //在if语句中c被重新赋值

常见应用,判断奇偶

//例如
#include <iostream>
#include <string>
using namespace std;
int main()
{
    int a = 4;
    if (a % 2)
    {
        cout << "这是奇数";
    }
    else
    {
        cout << "这是偶数";
    }

    return 0;
}

最好加上括号

,<,>=,<=,!=,==
正常使用
取反:所有非零取反都是False
ij语句简写

c = a > b ? 5 : 10  //a>b则赋值5,否则赋值10
//例如
#include <iostream>
#include <string>
using namespace std;
int main()
{
    
    int a = 4;
    int b = 0;
    int c = 2;
    c = a < b ? 5 : 10;
    cout << c;
    return 0;
}
//显示
10

逗号运算符

逗号运算符 (,)用来分开多个表达式,并只取最右边的表达式的值返回.
例如有以下代码:
a=(b=3,b+2):
这行代码首先将 3 赋值给变量 b,然后将 b+2 赋值给变量 a。所以最后变量a 的值为5而变量b的值为 3

sizeof

计算变量在计算机中占用几个字节

//例如
#include <iostream>
#include <string>
using namespace std;
int main()
{
    int a = 4;
    int b = 0;
    int c = 2;
    c = sizeof(b);  //计算b占用几个字节
    cout << c;
    return 0;
}
//显示
4

运算符常见运算顺序的优先级和平常用的优先级基本一致

条件语句switch

switch(a)  //如果a是1,执行case1,如果a是2,执行case2,都不满足,执行default
{
case 1:
	cout << 'a'
	break;
case 2:
	cout << 'b'
	break;
default:
	cout << 'c'
	break;
}
//例如
#include <iostream>
#include <string>
using namespace std;
int main()
{
    
    int a = 4;
    int b = 0;
    int c = 2;
	switch (a)  //如果a是1,执行case1,如果a是2,执行case2,都不满足,执行default
	{
	case 1:
		cout << 'a';
			break;  //中断,退出
	case 2:
		cout << 'b';
			break;
	default:
		cout << 'c';
			break;
	}
    return 0;
}
//显示
c

如果去掉一个break

//例如
#include <iostream>
#include <string>
using namespace std;
int main()
{
    
    int a = 1;
    int b = 0;
    int c = 2;
	switch (a)  //如果a是1,执行case1,如果a是2,执行case2,都不满足,执行default
	{
	case 1:
		cout << 'a';
	case 2:
		cout << 'b';
			break;
	default:
		cout << 'c';
			break;
	}
    return 0;
}
//显示
ab
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值