IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> C++知识库 -> C++新手入门-4 -> 正文阅读

[C++知识库]C++新手入门-4

## C++新手入门--4

C++存储类

C++ 存储类:定义C++程序中变量/函数的范围和生命周期
包括:

  • auto
  • register
  • static
  • extern
  • mutable
  • thread_local

没有详细看

C++运算符

算数运算符

+,-,*,/,%,++,–

关系运算符

==,!=,>,<,>=,<=

逻辑运算符

&&,||,!

位运算符

&【与】,|【或】,^【异或】,~【非】
假设如果 A = 60,且 B = 13,现在以二进制格式表示,它们如下所示:

A = 0011 1100

B = 0000 1101


A&B = 0000 1100

A|B = 0011 1101

A^B = 0011 0001

~A = 1100 0011

<<【2进制左移】,>>【2进制右移】
二进制左移运算符。将一个运算对象的各二进制位全部左移若干位(左边的二进制位丢弃,右边补0)。【A << 2 将得到 240,即为 1111 0000】
二进制右移运算符。将一个数的各二进制位全部右移若干位,正数左补0,负数左补1,右边丢弃。【A >> 2 将得到 15,即为 0000 1111】

赋值运算符

=,+=,-=,*=,/=,%=,<<=,>>=,&=,|=,^=,~=,

杂项运算符

  • sizeof运算符(返回变量的大小)
  • Condition?X:Y(条件运算符, Condition为真,值为X,否则值为Y)
  • 逗号运算符,(顺序执行一系列运算)
    代码:
/*逗号运算符*/
#include<iostream>
using namespace std;
int main() {

	int i, j;

	j = 10;
	i = (j++, j + 100, 999 + j);

	cout << i;

	return 0;
}

结果:
在这里插入图片描述
过程:
依次求解表达式1(j++)==> j=11,2(j+100) ==>11+100 = 111,3(999+j) ==> 11+999 = 1010;
将表达式3的值赋给i
i = 1010

  • 成员运算符.和->(访问结构的成员用.点运算符;通过指针访问结构的成员时,使用->箭头运算符【没弄明白】)
  • 强制转换符Cast
    代码:
/*强制转换运算符*/
#include<iostream>
using namespace std;
int main() {

	double a = 21.09399;
	float b = 10.20;
	int c;

	c = (int)a;
	cout << "Line 1 - Value of (int)a is :" << c << endl;

	c = (int)b;
	cout << "Line 2 - Value of (int)b is  :" << c << endl;

	return 0;
}

结果:
在这里插入图片描述

  • 指针运算符&(返回变量的地址)
  • 指针运算符*(返回指针变量对应的value值)
    代码:
/* 指针运算符&和* */
#include<iostream>
using namespace std;

int main() {

	int var;
	int *ptr; //指针,指向ptr的地址--是一个地址变量
	int val;

	var = 3000;
	
	//获取var的地址
	ptr = &var;//ptr就是个指针变量,指针变量只能存地址,所以对应的值也应该是地址值,&就是获取变量的地址

	//获取ptr的值
	val = *ptr;//val是个变量,存的是对应地址的变量值,*号是作用于指针变量,获取对应地址的变量值

	cout << "Value of var :" << var << endl;//存的是变量var的值
	cout << "Value of ptr :" << ptr << endl;//存的是指针变量ptr所存的地址值
	cout << "Value of val :" << val << endl;//存的是指针变量所存的地址的value值

	return 0;
}

结果:
在这里插入图片描述

C++中的运算符优先级

/*运算符优先级*/
#include<iostream>
using namespace std;
int main() {

	int a = 20;
	int b = 10;
	int c = 15;
	int d = 5;
	int e;

	e = (a + b) * c / d;//(30*15)/5
	cout << "(a + b) * c / d的值是" << e << endl;

	e = ((a + b) * c) / d;//(30*15)/5
	cout << "((a + b) * c) / d的值是" << e << endl;

	e = (a + b) * (c / d);//30*(15/5)
	cout << "(a + b) * (c / d)的值是" << e << endl;

	e = a + (b * c) / d;//20+(150/5)
	cout << "a + (b * c) / d的值是" << e << endl;

	return 0;
}

结果:
在这里插入图片描述

while循环

代码:

/*while循环*/
#include<iostream>
using namespace std;
int main() {

	//局部变量声明
	int a = 10;

	//while循环执行
	while (a < 20) {
		cout << "a = " << a << endl;
		a++;
	}

	return 0;
}

结果:
在这里插入图片描述

for循环

代码:

/*for循环*/
#include<iostream>
using namespace std;
int main() {
	//for循环遍历
	for (int a = 10; a < 20; a++) {
		cout << "a的值为:" << a << endl;
	}
	return 0;
}

结果:
在这里插入图片描述

基于范围的for循环

代码:

/*基于范围的for循环*/
#include<iostream>
using namespace std;

int main() {

	int my_array[5] = { 1,2,3,4,5 };

	for (int &x:my_array) {//x的地址指向my_array的地址?反正x代表my_array的全部元素
		x *= 2;//对x操作其实是对my_array操作
		cout << x << endl;
	}

	//auto类型是C++11新标准中的,用来自动获取变量的类型
	for (auto &x : my_array) {//x的地址再次指向my_array的地址
		x *= 2;//对x操作就是对my_array操作
		cout << x << endl;
	}

	return 0;
}

结果:
在这里插入图片描述
上面for述句的第一部分定义被用来做范围迭代的变量,就像被声明在一般for循环的变量一样,其作用域仅只于循环的范围。而在":"之后的第二区块,代表将被迭代的范围。
代码:

/**/
#include<iostream>
#include<string>
using namespace std;
int main() {

	string str("some thing");
	//range for语句
	for (auto &c : str) {//c的地址指向str
		c = toupper(c);//修改c就是修改str
	}
	cout << str << endl;
	return 0;
}

结果:
在这里插入图片描述
上面的程序使用Range for语句遍历一个字符串,并将所有字符全部变为大写,然后输出结果

do…while循环

可以确保至少执行1次循环,在循环体尾部检查条件
代码:

/*do-while循环*/
#include<iostream>
using namespace std;
int main() {

	//局部变量声明
	int a = 10;

	//do循环执行
	do {
		cout << a << endl;
		a++;
	} while (a < 20);

	return 0;
}

结果:
在这里插入图片描述

嵌套循环求质数(没太搞懂)

代码:

/*嵌套循环找1-100中的质数*/
#include<iostream>
using namespace std;
int main() {

	int i, j;
	for (i = 2; i < 100; i++) {//自然界最小的质数是2
		for (j = 2;j<=(i/j);j++) {
			if (!(i % j)) {
				break;
			}
		}
		if (j > (i / j)) {
			cout << i << "是质数\n";
		}
	}

	return 0;
}

结果:
在这里插入图片描述

  C++知识库 最新文章
【C++】友元、嵌套类、异常、RTTI、类型转换
通讯录的思路与实现(C语言)
C++PrimerPlus 第七章 函数-C++的编程模块(
Problem C: 算法9-9~9-12:平衡二叉树的基本
MSVC C++ UTF-8编程
C++进阶 多态原理
简单string类c++实现
我的年度总结
【C语言】以深厚地基筑伟岸高楼-基础篇(六
c语言常见错误合集
上一篇文章      下一篇文章      查看所有文章
加:2021-11-10 12:12:56  更:2021-11-10 12:13:40 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 5:05:05-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码