当前位置: 首页 > 编程日记 > 正文

C/C++基础知识

C/C++知识积累

知识积累

1.string是C++的标准库,是不能作为变量名的;

2.strcpy(str1,str2)是将str2拷贝给str1,并返回str1

注:若str2比str1大,将导致数据溢出,导致错误;

char str = “123”;在最后是有个“\0”的,同样也算一个字节。

3.单行注释://单行注释

多行注释:/* 多行注释 */

知识点记录

1.C++初识

1.1变量

**作用:**给一段内存空间起名,方便操作该内存空间

**语法:**数据类型 变量名 = 初始值

C++变量类型,戳这里变量

#include <iostream>
using namespace std;int main() {//变量类型  变量名  =  数值int a = 20;cout << "a = "<<a<< endl;system("pause");return 0;
}

1.2常量

**作用:**记录程序中不可更改的数据

C++常量定义的方式:

1.#define宏常量:#denfine 常量名 常量数值

  • 通常放在文件的上方,头文件之下的位置;
#include <iostream>
using namespace std;
#define num 7int main() {cout << "数据 = "<<num<< endl;//宏定义的常量是不可以被修改的system("pause");return 0;
}

2.const修饰的变量:const 数据类型 常量名 = 常量值

  • 变量前面添加const,修饰的变量为常量不可修改
#include <iostream>
using namespace std;int main() {const int month = 12;//const修饰的变量为常量,不可以被修改cout << "一年月份为: "<<month<< endl;system("pause");return 0;
}

1.3关键字

c++中的关键字是不可以的作为变量使用的,C++中的关键字参考关键字

1.4命名规则

作用:C++给标识符(变量以及常量)命名时的规则:

  • 标识符不能是关键字
  • 标识符只能由字母数字下划线组成
  • 第一个字符必须为下划线或者字母不能为数字
  • 标识符是区分大小写

2.数据类型

C++中表示整形有以下几种方式,区别在于所占用空间大小不同

类型位数备注
char1字节-128到127 或0到255
unsigned char1字节0到255
signed char1字节-128到127
int4字节-
unsigned int4字节-
signed int4字节-
short int2字节-
unsigned short int2字节-
long int8字节-
signed long int8字节-
unsigned long int8字节-
float4字节精度型占4个字节(32位)
double8字节双精度型占8字节(64位)
long double16字节长双精度型16字节(128位)
wchar_t2或4个字节1个宽字符

2.1typedef声明

**typedef主要作用:**为一个已有的类型起一个新的名字

例如:

typedef	int	feet;//将int修改为feetfeet distance;//利用feet进行定义变量

2.2枚举类型

**作用:**由用户定义的若干枚举常量的集合;若定义为变量,枚举就是将变量的值一一列举,只能列举变量的范围

一般形式:

enum 枚举名{ 标识符[=整型常数], 标识符[=整型常数], 
... 标识符[=整型常数]
} 枚举变量;

提示:若枚举类型没有初始化时,则从第一个标识符开始,默认情况下,标识符没有被赋初值的情况下,第一个起始标识符为0,以此类推。

同样的,枚举类型里面的数据是可以被赋初值的。

enum color { red, green=5, blue };

可得,blue的数值为6,但red的默认值还是0。

2.3 sizeof关键字

作用:sizeof关键字用来记录数据所占用内存的大小

**语法:**sizeof(数据类型/变量);

代码如下:

#include <iostream>
using namespace std;int main() {//sizeof()的使用,查看数据占用内存的大小cout << "short占用内存: "<<sizeof(short)<< endl;cout << "int占用内存: " << sizeof(int) << endl;cout << "long占用内存: " << sizeof(long) << endl;cout << "long long占用内存: " << sizeof(long long) << endl;system("pause");return 0;
}

结果如下:

在这里插入图片描述

2.4实型(浮点型)

**作用:**用于表示小数

分类:

  1. 单精度浮点型float
  2. 双精度浮点型double

**区别:**表示有效数字的范围不同

数据类型占用字节有效数字范围
float4字节7位有效数字
double8字节15~16位有效数字

代码

#include <iostream>
using namespace std;int main() {//实型(浮点型数据)  有效数字表示float d1 = 3.15f;//单精度后需要加上f表示是单精度,否则默认为双精度 ,默认情况下C++显示6位有效数字double d2 = 3.14;cout <<"d1 = "<< d1<< endl;cout << "d2 = "<<d2 << endl;system("pause");return 0;
}

2.5字符型

**作用:**字符变量用于显示单个字符

语法:char ch = 'a';

注意:

  • 显示字符变量时,需要用单引号括起来,不能是双引号
  • 单引号内只能是一个字符,不能是字符串

C/C++中字符型变量只占用一个字节。

字符型变量不是将变量本身放在储存单元中,而是将变量对应的ASCII编码放入储存单元里面。

代码:

#include <iostream>
using namespace std;int main() {//字符型变量char ch = 'a';cout << ch << endl;//变量所对应的ASCII编码cout << (int)ch << endl;//输出结果为97system("pause");return 0;
}

2.6转义字符

常用的:\n:换行、\t:水平制表,输出整齐的数据、\\:代表反斜线字符“\”

代码:

#include <iostream>
using namespace std;int main() {//转义字符//换行cout << "Hello World \n";//反斜杠cout << "\\" << endl;//水平制表cout << "abc\tefg" << endl;system("pause");return 0;
}

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

2.7字符串型

**作用:**表示一串字符

两种风格

  1. C风格字符串:char 变量名[] = "字符串值";

    示例:

    	//注意:char 字符串名 [],这个中括号不能缺少,少了中括号,表示创建一个字符,用单引号表示,//且单引号里面必须是一个字符//等号后面必须用双引号char str[] = "Hello World";cout << str << endl;//输出:Hello World
    
  2. C++风格字符串:string 变量名 = "字符串值";

注意:使用之前需包含头文件#include

示例:

	//与C不同的地方,在定义时可以不用中括号,但是需要包含C++的头文件string str = "Hello World";

2.8bool类型数据

**作用:**表示真(1)或假(0)

2.9数据输入

关键字:cin

语法:cin >>

代码:

	cout << "请给整型数据a赋值:"<<endl;cin >> a;//给字符型数据赋值cout << "请给字符型数据b赋值:"<<endl;cin >> b;//直接输入字母即可,不需要打出来单引号

3.运算符(戳我)

3.1算术运算符

包括:+-*/%++--

例如:

**/(除法):**两个整数相除得到结果就是整数,省去小数部分;

%(取模):10%3 = 1;

注意:取模运算两端须均为整数

++i(前置运算):(口诀)先计算,后赋值 例如:a = 2;b =++a;可得a = 3,b = 3;

i++(后置运算):(口诀)先赋值,后计算 例如:a = 2;b =a++;可得a = 3,b = 2;

**注意:**两小数相除,结果可以是小数,同样也可以是整数;

例如:

	//得到整数double a = 0.5;double b = 0.25;cout << a/b << endl;//结果为:2//得到小数double a = 0.5;double b = 0.22;cout << a/b << endl;//结果为:2.27273(一般保留6位)

3.2赋值运算符

**作用:**用于表达式的值赋给变量

运算符:=+=-=*=/=%=

3.3比较运算符

**作用:**比较两个数的大小,返回值为真或假

运算符:==!=<><=>=

3.4逻辑运算符

**作用:**用于根据表达式的值返回真值或假值

运算符:&&||

4.程序流程结构

C/C++中三种基本的运行结构顺序结构选择结构循环结构

4.1选择语句

4.1.1if语句

  • 单行条件语句(if(){…})
  • 多行条件语句(if(){…}else{…})
  • 多条件语句(if…else…多层嵌套型)

4.1.2三目运算符

**作用:**实现简单的判断

语法:表达式1?表达式2:表达式3

表达式1为真,执行表达式2,否则执行表达式3

4.1.3switch语句

**作用:**执行多条件分支语句

语法:

	switch(表达式){case 结果1:执行语句1;break;case 结果2:执行语句2;break;...default:执行语句;break;}

4.2循环结构

4.2.1while循环

语法:while(循环条件){循环语句}

猜数字小游戏:

#include <iostream>
using namespace std;
#include <ctime>//获取时间int main() {//获取随机数 添加随机数种子,利用当前系统时间产生随机数,防止每次都一样srand((unsigned int)time(NULL));int num = rand() % 100 + 1;//cout << "num = " << num << endl;int val = 0;while (1){cin >> val;cout << "您猜测的数值为:" << val <<endl;if (val > num) {cout << "输入数据较大" << endl;}else if (val < num){cout << "输入数据较小" << endl;}else {cout << "猜对了!" << endl;break;}}
}

4.2.2do…while循环语句

语法:do {循环语句}while{循环条件}

**注意:**这个是先执行一次语句的,然后判断是否满足条件。

案例:水仙花数

#include <iostream>
using namespace std;
#include <ctime>int main() {//打印水仙花数int num = 100;do {int a = 0;int b = 0;int c = 0;a = num % 10;//个位b = num / 10 % 10;//十位c = num / 100;//百位if (a*a*a+ b*b*b + c*c*c == num) {cout << "水仙花数:"<< num << endl;}num++;} while (num < 1000);
}

效果图:

在这里插入图片描述

4.2.3for循环语句

语法:
for(起始表达式;条件表达式;末尾表达式){循环语句;}

	int main(){for(int i = 0; i < 10; i++){cout << i << endl;}return 0;}

**练习案例:**敲桌子

#include <iostream>
using namespace std;
#include <ctime>int main() {for (int i = 0; i < 100; i++) {if (i % 10 == 7 || i % 7 == 0 || i / 10 == 7) {cout << "敲桌子" << endl;}else{cout << i << endl;}}
}

效果图:

在这里插入图片描述

4.2.4嵌套循环

**案例1:**打印星状图

#include <iostream>
using namespace std;
#include <ctime>int main() {for (int i = 0; i < 10; i++) {for (int j = 0; j < 10; j++) {cout << "* ";}cout << endl;}
}

效果图:

在这里插入图片描述

**案例2:**乘法口诀表

#include <iostream>
using namespace std;
#include <ctime>int main() {for (int i = 1; i <= 9; i++) {for (int j = 1; j <= i; j++) {cout <<i << "* " << j << "=" << i * j << "  ";	}cout << endl;}
}

效果图:

在这里插入图片描述

4.3跳转语句

4.3.1break语句

使用:

  • 出现在switch中
  • 出现在循环语句中,跳出当前循环
  • 出现在嵌套循环中,跳出最内层循环

4.3.2continue语句

**作用:**跳出循环语句中,跳出本次循环中余下尚未执行的语句,继续执行下一次循环

int main() {for (int i = 1; i <= 100; i++) {if (i % 2 ==0) {continue;}cout << i << endl;}
}

4.3.3goto语句

语法:goto 标记;

#include <iostream>
using namespace std;
#include <ctime>int main() {cout << "1" << endl;cout << "2" << endl;goto flag;cout << "3" << endl;cout << "4" << endl;
flag:cout << "5" << endl;
}

效果图:

在这里插入图片描述

相关文章:

面向完全初学者的Unity和C#游戏开发学习教程

了解如何通过使用Unity游戏引擎和C#制作BomberMan风格的3D游戏来制作您的第一款视频游戏 你会学到: 使用Unity 2021学习3D游戏开发 通过制作你的第一个3D游戏来学习C#编程语言的基础知识 从头到尾制作你的第一个电子游戏 超过40个视频作业&#xff0c;测试你的学习技能&#x…

java transient关键字_小伙子,你真的搞懂 transient 关键字了吗?

先解释下什么是序列化我们的对象并不只是存在内存中&#xff0c;还需要传输网络&#xff0c;或者保存起来下次再加载出来用&#xff0c;所以需要Java序列化技术。Java序列化技术正是将对象转变成一串由二进制字节组成的数组&#xff0c;可以通过将二进制数据保存到磁盘或者传输…

DEDECMS后台上传banner图控制图片轮播

将图片轮播做到后台控制&#xff0c;无论是dedecms还是其他的程序都是一样的重要&#xff0c;方便客户自己调试&#xff0c;不然动不动就拿FTP开刷&#xff0c;一个是操作不方便&#xff0c;增加了使用上的难度&#xff0c;另外也有一定的风险&#xff0c;很可能由于操作生疏&a…

C/C++刷题知识点总结

纠正一些知识性偏见、欠缺&#xff1a; 变量占用内存大小&#xff0c;是用sizeof&#xff08;&#xff09;计算出来那个&#xff0c;定义字符型数据时后面不添加’\0‘的&#xff0c;但是在字符串数组后面是添加的&#xff1b;例如char a[]{a,b,c};char b[]{"abc"};两…

虚幻引擎5:从零开始的蓝图近战AI学习教程

Unreal Engine 5: Blueprint Melee Combat AI from Scratch 创建一个动作游戏&#xff0c;以打击2个独特的人工智能&#xff0c;包括一个火蔓延龙&#xff01; 你会学到什么 学习使用虚幻引擎5的技巧 如何通过蓝图设计和创建人工智能 学会创造两种独特的人工智能 学会在战斗中…

git add 文件夹_Git的下载安装以及基本操作

二&#xff0c;配置git&#xff1a;用户名和邮箱在桌面右键-【Git Bash Here】输入命令&#xff1a;git config --global user.name "lijiang"git config --global user.email "2906718132qq.com"查看用户名和邮箱是否配置成功&#xff0c;去这个路径&…

scapy windows install

最近有点扫描网络的需求&#xff0c;都说scapy好&#xff0c;但是安装是个事&#xff08;当然指的是windows安装&#xff09;有个scapy3k&#xff0c;支持python3&#xff0c;可惜需要powershell&#xff0c;也就是说windows xp是没有戏了。 网上说最好python2.6&#xff0c;但…

Enda 的 2015 下半年读书计划

2015下半年的读书计划 php 方面 《PHP设计模式》 《PHP核心技术与最佳实践》 《learning php设计模式》 《深入php》 Mysql 方面 《高性能MySQL》 《深入理解mysql核心技术》 其他 《天才在左疯子在右》 大家有什么好书吗&#xff1f;推荐推荐嘛&#xff5e;&#xff5e;

Qt嵌入外部EXE程序,并显示在主界面中!

一、获取程序句柄以及类 打开Visual Studio 进行查询 二、QT调用程序 H文件 #ifndef VISUAL_H #define VISUAL_H#include <QWidget> #include <QProcess> #include<Windows.h> #include<QWindow>QT_BEGIN_NAMESPACE namespace Ui { class Vi…

UE虚幻引擎:建筑可视化学习教程 Unreal Engine : Architectural Visualization

使用这套4合1虚幻引擎课程包提高您的建筑可视化技能 你会学到什么 准备要导出的Revit模型 使用虚幻数据史密斯产品查看器工具 创造UE的材料 交换材料 点亮你的模型 添加交互 打包内容以便在虚拟现实和移动设备上分发 迁移材料包 批量更换材料 静态和动态照明 光照图分析、校正…

NOIP2013普及组 T2 表达式求值

OJ地址&#xff1a;洛谷P1981 CODEVS 3292 正常写法是用栈 1 #include<iostream>2 #include<algorithm>3 #include<cmath>4 #include<stack>5 #include<cstring>6 #include<cstdio>7 using namespace std;8 char c[20000000];9 10 stack&…

清除图片下默认的小间隙_密封间隙对迷宫密封性能影响的三维数值分析

建立迷宫密封的三维模型&#xff1b;采用GAMBIT对迷宫间隙进行非结构化网格划分&#xff0c;模拟密封间隙对迷宫密封性能的影响&#xff0c;并与二维截面模型模拟结果进行对比。结果表明&#xff1a;在考虑周向湍流的影响下&#xff0c;泄漏量相对于仅考虑横向及纵向湍流f的影响…

Thrift抛直接内存OOM一点解决思路

2019独角兽企业重金招聘Python工程师标准>>> 最近使用Thrift TThreadedSelectorServer服务方式&#xff0c;运行一段时间就会抛OutOfMemoryError: Direct buffer memory异常&#xff1b; java.lang.OutOfMemoryError: Direct buffer memoryat java.nio.Bits.reserve…

C/C++、嵌入式开发岗笔试集锦

图标链接 C运算符检索&#xff08;点击查看 - 转&#xff09; C构造函数、拷贝函数等理解&#xff08;点击查看 - 转&#xff09; 题目 ⭐⭐⭐1.&#xff08;STL库&#xff09;请问C的STL库中map的底层数据结构为&#xff08;&#xff09;&#xff0c;multimap的底层数据结…

Blender制作3D模型导出到UE5完整学习教程

学习如何在Blender中创建AAA游戏资产&#xff0c;然后导出到虚幻引擎5的完整指南 你会学到什么 遵循关于创建一套AAA游戏就绪的优质中世纪市场摊位的完整指南 最大化您的推荐人的潜力&#xff0c;以开发强大的游戏资产概念 使用Blender并了解其界面和快捷方式 从初级水平到世界…

[纪录]仿IOS滚轮效果(竖直滑动选择器)

今天想做一个类似这样的一个效果,可是UI的模板是参考IOS做的,于是就各种百度各种搜,最后让我找到了一个仿IOS滚轮的一个Demo,稍微研究了一下,发上来,大家一起学习,以后也方便我查看,就不用再去百度了,嘿嘿! 仿IOS滚轮效果 首先是一个类,继承了ScrollView public class WheelVie…

win7如何设置wifi热点_xp系统怎么设置无线网络热点(电脑设置wifi热点步骤)

现在手机基本都是可以开启wifi热点功能&#xff0c;但有时候因为各种原因&#xff0c;比如没有无线或者路由器有问题等情况&#xff0c;手机又需要使用网络&#xff0c;这个时候需要用电脑设置wifi热点。那么&#xff0c;怎么用电脑设置wifi热点呢&#xff1f;下面分别用win10系…

汇编语言第二课作业-实验1

Debug命令-摘自百度百科A 汇编命令 功能&#xff1a; 将指令直接汇编成机器码输入到内存中。说明&#xff1a; 用于小段程序的汇编及修改目标程序&#xff0c;所有输入的数字均采用十六进制&#xff0c; 用户装入内存的汇编语句是连续存放的&#xff0c;若没有指定地址&#xf…

C++、嵌入式软开之数据结构

总结&#xff1a; 1.二叉树搜索树是需要进行比较大小&#xff0c;满足传递性才可&#xff1b; 刷题总结&#xff1a; 1.&#xff08;二叉树遍历&#xff09;已知某二叉树的后序遍历序列是dabec&#xff0c;中序遍历序列是debac&#xff0c;它的前序遍历是&#xff08;&#xf…

3dsMax插件V-Ray渲染与合成学习课程 3ds Max: Rendering for Compositing in V-Ray Next

使用渲染元素&#xff0c;3ds Max的V-Ray Next对创建高质量合成所需的参数(如反射、阴影、遮罩等)提供了精细的控制。在本课程中&#xff0c;布莱恩布拉德利展示了如何在Photoshop和After Effects等应用程序中使用V-Ray Next为后期制作工作流专门创建渲染。探索渲染元素用户界面…

对找数程序的理解

经过几个小时的思考&#xff0c;总算是对老师出的这个程序题有了一定的了解。该C#程序是一个对数字进行查找的程序。程序清单如下&#xff1a; using System; using System.Collections.Generic; using System.Text; namespace FindTheNumber {  class Program  {    s…

win10鼠标灵敏度怎么调_和平精英最稳压枪灵敏度怎么调教程,适合所有段位以及适合国际版PUBG手游压枪...

和平精英(原刺激战场)主播最稳压枪灵敏度怎么调&#xff1f;不妨看看花了五个小时调试的最稳和平精英压枪灵敏度吧。废话不多&#xff0c;上图按照调。保证你满意&#xff0c;你离主播只差点意识此和平精英压枪灵敏度适合所有段位 也适合PUBG(和平精英国际版)-------分割线---…

C++基本知识点集锦(2022秋招)

&#xff08;1&#xff09;构造函数是一种特殊的类成员函数&#xff0c;是当创建一个类的对象时&#xff0c;它被调用来对类的数据成员进行初始化和分配内存。&#xff08;构造函数的命名必须和类名完全相同&#xff09; &#xff08;2&#xff09;C的空类&#xff0c;编译器会…

Sketchup插件Vray户外场景设计渲染教程 Vray Next For Sketchup Exterior

Sketchup户外场景设计的Vray Next 你会学到什么 渲染白天和夜晚场景 后期制作 Sketchup的Vray Next 中级sketchup用户 大小解压后&#xff1a;3.83G 1280X720 mp4 语言&#xff1a;英语中英文字幕&#xff08;根据原英文字幕机译更准确&#xff09; 大家好&#xff0c; 我是…

实验四:使用库函数API和C代码中嵌入汇编代码两种方式使用同一个系统调用

贺邦原创作品转载请注明出处 《Linux内核分析》MOOC课程http://mooc.study.163.com/course/USTC-1000029000 实验目的&#xff1a; 使用库函数API和C代码中嵌入汇编代码两种方式使用同一个系统调用&#xff0c;理解系统调用的工作机制。 实验过程&#xff1a; 本文实验选择24号…

三菱plc232数据线驱动下载_三菱PLC与西门子PLC有什么区别?

三菱PLC与西门子PLC有什么区别&#xff1f;分别有什么优点和缺点&#xff1f;该如何选择&#xff1f;学习哪种品牌&#xff1f;首先它们的编程理念不同&#xff0c;三菱PLC是日系品牌&#xff0c;编程直观易懂&#xff0c;学习起来会比较轻松&#xff0c;西门子PLC是德国品牌&a…

Github 树形菜单插件

ajax显示gitlab的&#xff0c;很像mac的树形展示。 直接在左侧做了一个ajax的树&#xff0c;每次访问gitlab自动加载。非常方便呢&#xff0c;在国内网速这么慢的情况下更显得好用了。 下载地址&#xff1a; https://github.com/buunguyen/octotree/tree/master/dist chrome安装…

C/C++、嵌入式秋招之SQL篇

⭐⭐1.选取最大&#xff08;小&#xff09;值 SELECT * FROM employees order by hire_date desc limit 0,1解释&#xff1a; 知识点 ORDER BY 根据指定的列对结果集进行排序&#xff0c;默认按照升序&#xff0c;降序 ORDER BY DESCLIMIT(m, n) 从第 m 1 行开始取 n 条记录…

C4D样条曲线建模大师班 Cinema 4D MasterClass: Master Modelling using Splines

通过本课程&#xff0c;快速学习使用样条曲线建模的基础知识&#xff0c;并将您的技能提升到一个新的水平 你会学到什么 能够使用样条线对整个对象进行建模 三维建模和UV展开 能够找到模拟复杂形状的最佳方法 无数的提示和技巧 在项目中应用蓝图的真实尺寸 对Uv制图有更好的理…

从头到尾彻底解析Hash表算法

从头到尾彻底解析Hash表算法 发布时间: 2013-10-02 10:26 阅读: 25156 次 推荐: 14 原文链接 [收藏] 作者&#xff1a;July、wuliming、pkuoliver 说明&#xff1a;本文分为三部分内容&#xff0c; 第一部分为一道百度面试题Top K算法的详解&#xff1b;第二部分为关于H…