当前位置: 首页 > news >正文

黑马程序员c++2024版笔记 第一章

1.字面常量

常量:在程序执行过程中值不会改变的量。

常量分为字面常量和符号常量。字面常量是被书写到代码内的常量,也称字面量

#include <iostream>
using namespace std;int main() {//整型、实型、字符、字符串//整型(整数)21;//实型(小数)180.5;//字符,''进行包围,单个字符'c';    //  只能是一个字符,不能多个也不能0个//字符串 ""进行包围,任意个字符""; //空字符串"c"; //单个字符"hello"; //多个字符//通过cout将这些内容全部打印到控制台上cout << 21 << endl;//ctrl+d复制该行cout << 180.5 << endl;cout << 'c' << endl;cout << "hello" << endl;return 0;
}

输出: 

21
180.5
c
hello

2.标识符和关键字

在c++代码中会涉及到很多命名的场景,比如变量的命名以及后续学习的类、函数等命名。这些命名我们统一称之为:标识符,即表示某类实体的符号(名称)。

起名的限定规则

  • 只允许字母、数字、下划线的组合
  • 数字不能开头
  • 不能使用关键字名

3.符号常量

符号常量:使用标识符去定义的常量。

简单来说,符号常量是给常量起一个名字。

定义语法

#define 标识符(名称) 常量
  • #define :宏命令(后续学习) 固定开头
  • 标识符(名称):符号常量的名称,是标识符的一种,字母建议全部大写
  • 常量:常量值
    #define FAT_BMI 28    // 肥胖BMI
    #define J2C_RATE 4.19    // 焦耳和卡路里转换率

符号常量的定义不需要分号结尾。使用符号常量直接用它的名字即可。

#include <iostream>
using namespace std;
#define FAT_BMI 28
#define J2C_RATE 4.19int main() {//使用符号常量示例cout << FAT_BMI << endl;cout << "焦耳转卡路里需要除以: " << J2C_RATE << endl;return 0;
}

 代码编写没有问题,但是输出出现了中文乱码

28
鐒﹁€宠浆鍗¤矾閲岄渶瑕侀櫎浠ワ細 4.19

解决方式有2种:

1. 引入Windows.h库,并加入一句固定写法SetConsoleOutputCP(CP_UTF8);

#include <iostream>
#include <Windows.h>
using namespace std;
#define FAT_BMI 28
#define J2C_RATE 4.19int main() {SetConsoleOutputCP(CP_UTF8);    // 设置控制台输出的字符编码//使用符号常量示例cout << FAT_BMI << endl;cout << "焦耳转卡路里需要除以: " << J2C_RATE << endl;return 0;
}

2. system("chcp 65001");(较方便,但是会额外输出内容)

#include <iostream>
// #include <Windows.h>
using namespace std;
#define FAT_BMI 28
#define J2C_RATE 4.19int main() {system("chcp 65001");// SetConsoleOutputCP(CP_UTF8);    // 设置控制台输出的字符编码//使用符号常量示例cout << FAT_BMI << endl;cout << "焦耳转卡路里需要除以: " << J2C_RATE << endl;return 0;
}

输出

Active code page: 65001
28
焦耳转卡路里需要除以: 4.19

4.变量的基础使用

变量:在程序运行时能存储计算结果或表示值的抽象概念。也就是程序运行时记录数据。

1.变量的声明

语法:变量类型 变量名;
示例:int num;

 变量名也是标识符,需要符合标识符命名规则,且建议使用小写字母(区分符号常量)

2.变量的赋值

语法:变量名=变量值;
示例:num = 10;

5.变量的特征

变量存储数据,是可以发生改变的,只需要再一次赋值即可。

bmi = 30;
bmi = = bmi - 2;

6.变量的快速定义

除了基本的:先声明(定义)后赋值的变量应用外,变量还支持多种快捷的使用形式。

快捷方式1:变量的声明和赋值同时进行:

int num = 10;
string name = "Jay Chow";

快捷方式2:一次性声明多个变量:

int a, b, c;
a = 10;
b = 20;
c = 30;

快捷方式3:一次进行多个变量的声明并同时赋值:

int a = 10, b = 20, c = 30;

7.标识符的命名规范

符号常量:满足标识符的硬性要求下,若使用英文字母,应全部大写。

变量:满足标识符的硬性要求下,如果使用英文字母,不应全部大写(可大小写组合或纯小写)。

 通用规范要求:

  1. 见名知义:标识符的命名应当有具体的含义。
    string name = "小明";
    string a = "小明";
  2. 下划线命名法:当命名标识符的时候,为满足见名知义要求,可能会使用多个单词或数字的组合。为了区别每一个单词,可以用下划线进行区分,这种方式称之为下划线命名法。
    string student_name = "小明";
    string teacher_name = "王老师";

    如果使用该命名法,英文单词可以全部小写。下划线命名法一般用于变量。

  3. 小驼峰法
    1. 大小写首字母进行区分
    2. 简短的单词可以全大写
string studentName = "小明";
string teacherName = "王老师";

        小驼峰命名法一般用于变量、函数、方法命名。        

        4.大驼峰法:每个单词的首字母都大写

string StudentName = "小明";
string TeacherName = "王老师";

        大驼峰命名法一般用于类命名。 

8.标识符的限制规则

目前接触到的标识符:符号常量名、变量名。

除此之外还有:类名称、文件名、方法/函数名等。

标识符的使用限制分为硬性规则和软性规范

硬性规则

  1. 内容限定:仅可使用字母数字下划线,且数字不可开头。
  2. 大小写敏感:大写和小写字母的名称是不同的可区分的。
  3. 不可使用关键字。

9.数据类型-整型

在C++中,整型除了有int,还有下面几种表现形式:

数据类型占用空间取值范围取值范围(科学计数)
short(短整型)2byte-32768~32767-2^15~2^15-1
int(整型)4byte-2147483648~214743647-2^31~2^31-1
long(长整型)Windows为4字节,Linux为字节,8字节4字节范围同上,8字节范围同下4字节范围同上,8字节范围同下
long long(长长整型)8字节-9,223,372,036,854,775,808 ~9,223,372,036,854,775,807-2^63~2^63-1

sizeof()函数

通过在sizeof()函数括号传入数据,就可以提供数据具体占多少字节。

long long a = 233;
cout << sizeof(a) << endl;

10.无符号和有符号数

在c++中,数字是有符号和无符号之分的。有符号:可以允许负数存在;无符号:仅允许正数存在。

[]表示可选,可写可不写。如signed int == int。

取值范围规则(n表示位数):

        有符号:-2^(n-1)~2^(n-1)-1

        无符号:0~2^n-1

#include <iostream>
#include <Windows.h>
using namespace std;int main() {SetConsoleOutputCP(CP_UTF8);// 有符号 signed(可选) 无符号unsigned(必选)signed int num1 = 10;int unm2 = 20;unsigned int num3 = 30; //无符号的数字必须大于等于0cout << num1 << endl;cout << unm2 << endl;cout << num3 << endl;return 0;
}

 无符号数的快捷写法:

    //无符号的int、short、long有快捷写法u_short num4 = 40;u_long num5 = 50;u_int num6 = 60;

11.数据类型-实型

在c++中,实型有float、double、long double

实型数据没有signed和unsigned之分,全部都是有符号的。

有效位数包含整数、小数点、小数

12.c++常量类型的确定

在C++中,常量是可以有后缀的,具有不同的功能,如:

10L;    //指定为long类型
123UL;    //指定为unsigned long类型

 不带后缀时,整数默认最小类型为int,小数默认为double。有时候double会浪费空间,例如变量为3.1,这时可以使用后缀3.14f使其为float类型。

http://www.xdnf.cn/news/457363.html

相关文章:

  • Delphi 中 BPL(2):大型项目中 BPL 对性能的影响及调优策略
  • 2025年11月软考各科目难度及适合人群分析
  • 浪潮云边协同:赋能云计算变革的强力引擎
  • YOLO11改进-模块-引入空间增强前馈网络SEFN 提高多尺度 遮挡
  • 华宇TAS应用中间件与亿信华辰多款软件产品完成兼容互认证
  • 2025 OceanBase 开发者大会全议程指南
  • 【AI论文】用于评估和改进大型语言模型中指令跟踪的多维约束框架
  • 如何卸载并重新安装 Mozilla Firefox 浏览器
  • 2025年,多模态特征融合只会更火
  • 基于Rust语言的Rocket框架和Sqlx库开发WebAPi项目记录(一)
  • WPS文字的“邮件合并”功能-----批量生成word文档
  • 一文讲透 Vue3 + Three.js 材质属性之皮革篇【扫盲篇】
  • 【hadoop】sqoop案例 hive->mysql
  • 2.ch452a 4线驱动按键扫描
  • Spring MVC 拦截器 (HandlerInterceptor) 是什么? 它与 Servlet Filter 有什么区别?
  • Kotlin并发请求的一些知识记录
  • Go 语言中接口类型转换为具体类型
  • 修复Windows 10中由于SearchProtocolHost.exe而导致的CPU使用率过高
  • 软考 系统架构设计师系列知识点之杂项集萃(60)
  • 飞牛NAS本地部署开源TTS文本转语音工具EasyVoice与远程使用流程
  • 在Angular中使用Leaflet构建地图应用
  • 【实战教程】从零实现DeepSeek AI多专家协作系统 - Spring Boot+React打造AI专家团队协作平台
  • 服务器连接多客户端
  • 8.ADC
  • 常用Playwright代码片段-Part4
  • π0: A Vision-Language-Action Flow Model for General Robot Control
  • PowerBI链接EXCEL实现自动化报表
  • 【Linux系统】从 C 语言文件操作到系统调用的核心原理
  • vscode c++编译onnxruntime cuda 出现的问题
  • VScode各文件转化为PDF的方法