[C++]笔记 - 知识点积累

news2024/12/27 11:02:02

一.运算符的优先级

一共15个级别

  • 最高优先级 : () []
  • 最低优先级 :逗号表达式
  • 倒数第二低优先级 : 赋值和符合赋值(=,==,-=...)
  •  ! >算术运算符 > 关系运算符 > && >> || >赋值运算符

二.数据类型转换

  •  隐式类型转换
    • 算数转换
      • char int long longlong float double
      • 尽量不丢失精度,会将计算结果往精度大的类型转换
      • 例如 : 15 + 3.14    =>   15.0  +3.14
    • 赋值转换
      • int x = 3.14*10.0;
      • 转换为int类型时候,因为赋值符号的左边变量为int,则将类型转换为int类型
      • 结果为 31
    • 输出转换(C语言)
      • printf("%c",255+50); 
      • 305的二进制数是 0000 0001 0011 0001,由于超过了一个字节所能存储的最大数,,所以会将0000 0001挤到第二个字节里面去,该字节就存放0011 0001,十进制为49,即ASCLL码为49,转换为字符为 ' 1 '
      • 若按%d 进行输出,则输出为305,因为int占四个字节,足够容纳305的二进制
  • 强制类型转换
    • c语言 (数据类型)数据   (int)3.14
    • c++语言   数据类型(数据) int(3.14)
    • x  = (char)257 + 100;
    • 257为int类型,其二进制为 1 0000 0001,转换成char类型会将保留8位,结果位0000 0001,这样结果在和int类型的100相加,等于 1+ 100  = 101
  • 高级强制类型转换
  • static_cast
  • dynamic_cast
  • reinterpert_cast

三.switch和if的选择

  • switch : 用于 int char long longlong类型的变量,和多个特定常量的判断处理
    • float和都变了类型不可以
  • if适用于各种逻辑判断
  • switch一定能改为if,if不一定能改为switch

四.const int*p与int* const p 的区别

        

int i  =0;
int t = 2;
const int *p = &i;//可以改变p的指向,但是不能通过*p改变指向变量的值
int* const p1 = &i;//可以通过*p改变指向变量的值,但是不能在指向其他变量了
//*p = 3;//error
//p = &t;//pass
//*p1 =3;//pass
//p1 = &t;error
  • 常量指针可以指向常量或变量,不能将常量指针赋值给普通指针

五.底层Const和顶层Const的区别

  • 底层const用于修饰指针或引用目标对象,表示目标对象是常量,不可修改。
  • 顶层const用于修饰指针或引用本身,表示指针或引用本身是常量,无法指向其他对象。
  • 顶层const,指针本身是常量

六.不安全函数

  • scanf_s函数
int x;
scanf_s("%d",&x);//不需要使用第三个参数,用法和scanf相同

float f;
scanf_s("%f",&f);//不需要使用第三个参数,用法和scanf相同

char c;
scanf_s("%c",&c,sizeof(c));//需要使用第三个参数,否则有警告

char name[16];
scnaf_s("%s",name,sizeof(name));//需要使用第三个参数

int age;
char name[16];
scanf_s("%d%s",&age,name,sizeof(name));
  • gets函数不能使用
    • 使用gets_s,gets函数是老标准C语言函数,vs使用更安全的C11标准,使用对应的gets_s
char line[32];
gets_s(line,sizeof(line));

 六.cin>> 返回值

  • if((cin>>word) == 0){}//在vs里面不能通过编译
    • 解决方法
if(!(cin>>word)){}//方法1

if((bool)(cin>>word) == 0){}//方法2

七.getline返回值是cin

  • 返回值是cin
getline(cin, word) >> count;

if(getline(cin,line)==0){}//错误,不能通过编译
  • 解决方案和上面cin的解决方法一样,可以强制转换类型或者加上逻辑非

八.计算机英语加油站

  • bool 布尔 逻辑类型
  • if         如果
  • else     否则
  • switch  开关
  • case     情况
  • default   默认
  • commit  提交
  • clone     克隆   复制

九.goto语句

  • 例子 :
string ret;
for(int i = 0;i<5;i++){
    cout<<"开始第"<<i+1<<"次相亲..."<<endl;
    cout<<"你喜欢打王者吗?"<<endl;
    cin>>ret;
    if(ret != "yes") continue;
    else{
        cout<<"我中意你,你中意我吗?"<<endl;
        cin>>ret;
        if(ret == "yes"){
            goto happy;
        }
    }
}
happy :
    cout<<"幸福生活"<<endl;
    cout<<"开启幸福之旅"<<endl;
    return 0;
}
  • goto在应用开发中不建议用,会破坏程序的结构性,一般用在底层开发,追求效率
  • 语法 :goto 标志;    标志:
  • goto在应用开发中一般将标志后面的语句封装为函数,进行函数调用 ; 或者用flag进行标记,标记成立执行标志后的代码
  • 标签必须和goto 标志;必须放在同一个函数内,不能跨函数,但是可以在同一个函数的任何位置

十.cmd

  • 切换盘 直接 d:或者c:
  • 进入某个文件,用cd 例如 cd d:\ceshi,就会进入d盘下的ceshi目录
  • 查看编码用chcp(活动码)
  • 修改编码用: chcp  编码  ,例如 chcp  936,会改为936编码
  • 在一个目录下放两个exe文件,利用破解.exe | 客户.exe,会将前面程序的输出数据,通过管道作为后面文件的输入数据
  • 利用dir查看目录下面的文件

十一.VS播放音乐

  • 头文件 
#include<mmsystem.h>
#prama comment(lib,"winmm.lib")
  • 加载音乐代码
mciSendString(_T("play 音乐地址 repeat"),0,0,0);
  • _T可以用多字符集替代
  • play 播放
  • repeat 重复

十二.宽度与对其

  • c++中的设置文本宽度头文件为#include<iomanip>,语句为setw(宽度)
  • 设置对其 : 例如左对齐 std::left

十三.原地交换字符串

  • 当left = right时,没有必要再交换,也可也用于交换其他数据类型
    string str;
    int left,right;

    cout<<"输入一个字符串: ";
    cin>>str;

    left = 0;
    right = str.length()-1;

    while (left<right){
        char tmp = str[left];
        str[left] = str[right];
        str[right] = tmp;
        left++;
        right--;
    }

    cout<<str<<endl;

十四.终端

  • 控制终端大小
  • mode con cols = 列数,lines =行数

  • system("任何终端命令");,再system里面可以写任何终端命令进行执行
  • 例如 : system("mode con cols=40 lines=15");

十五.string转char*类型

  • 函数c_str()函数可以将string类型转换为从const char*类型
using namespace std;
void print(const char * str){
    cout<<str;
}
int main() {
    string str = "LiHua";
    const char* p = str.c_str();//const,char*类型
    print(str);//这样会报错,形参与实参的类型不匹配
    print(str.c_str());//不会报错,将string 转成const char*
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/887858.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【2023年11月第四版教材】《第5章-信息系统工程之软件工程(第二部分)》

《第5章-信息系统工程之软件工程&#xff08;第二部分&#xff09;》 1.3 软件设计1.4 软件实现&#xff3b;补充第三版教材内容&#xff3d; 1.5 部署交付 1.3 软件设计 1、结构化设计SD是一种面向数据流的方法&#xff0c;它以SRS和SA阶段所产生的DFD和数据字 典等文档为基础…

如何使用CSS实现一个渐变背景效果?

聚沙成塔每天进步一点点 ⭐ 专栏简介⭐ 使用CSS实现渐变背景效果⭐ 线性渐变&#xff08;Linear Gradient&#xff09;⭐ 径向渐变&#xff08;Radial Gradient&#xff09;⭐ 写在最后 ⭐ 专栏简介 前端入门之旅&#xff1a;探索Web开发的奇妙世界 记得点击上方或者右侧链接订…

genism word2vec方法

文章目录 概述使用示例模型的保存与使用训练参数详解&#xff08;[原链接](https://blog.csdn.net/weixin_44852067/article/details/130221655)&#xff09;语料库训练 概述 word2vec是按句子来处理的Sentences(句子们) 使用示例 from gensim.models import Word2Vec #sent…

ThreadLocal(超详细介绍!!)

关于ThreadLocal&#xff0c;可能很多同学在学习Java的并发编程部分时&#xff0c;都有所耳闻&#xff0c;但是如果要仔细问ThreadLocal是个啥&#xff0c;我们可能也说不清楚&#xff0c;所以这篇博客旨在帮助大家了解ThreadLocal到底是个啥&#xff1f; 1.ThreadLocal是什么&…

AgentBench::AI智能体发展的潜在问题一

从历史上看,几乎每一种新技术的广泛应用都会在带来新机遇的同时引发很多新问题,AI智能体也不例外。从目前的发展看,AI智能体的发展可能带来的新问题可能包括如下方面: 第一是它可能带来涉及个人数据、隐私,以及知识产权的法律纠纷的大幅增长。要产生一个优秀的AI智能体,除…

ZLMediakit编译(Win32)

ZLMediakit编译流程&#xff0c;本文是编译32位的ZLMediakit 下载OpenSSL 直接下载binary就好了&#xff0c;地址&#xff1a;https://slproweb.com/download/Win32OpenSSL-1_1_1u.msi 也可以根据自己的需求下载其他版本&#xff0c;地址https://slproweb.com/products/Win32…

[oneAPI] 手写数字识别-LSTM

[oneAPI] 手写数字识别-LSTM 手写数字识别参数与包加载数据模型训练过程结果 oneAPI 比赛&#xff1a;https://marketing.csdn.net/p/f3e44fbfe46c465f4d9d6c23e38e0517 Intel DevCloud for oneAPI&#xff1a;https://devcloud.intel.com/oneapi/get_started/aiAnalyticsToolk…

【C语言】自定义实现strcpy函数

大家好&#xff0c;我是苏貝&#xff0c;本篇博客带大家了解如何自定义实现strcpy函数&#xff0c;如果你觉得我写的还不错的话&#xff0c;可以给我一个赞&#x1f44d;吗&#xff0c;感谢❤️ 一. 了解strcpy函数。 函数原型&#xff1a;char* strcpy( char* destination , …

LLM - 大模型评估指标之 BLEU

目录 一.引言 二.BLEU 简介 1.Simple BLEU 2.Modified BLEU 3.Modified n-gram precision 4.Sentence brevity penalty 三.BLEU 计算 1.计算句子与单个 reference 2.计算句子与多个 reference 四.总结 一.引言 机器翻译的人工评价广泛而昂贵&#xff0c;且人工评估可…

【uni-app报错】获取用户收货地址uni.chooseAddress()报错问题

chooseAddress:fail the api need to be declared in …e requiredPrivateInf 原因&#xff1a; 小程序配置 / 全局配置 (qq.com) 解决&#xff1a; 登录小程序后台申请接口 按照流程申请即可 在项目根目录中找到 manifest.json 文件&#xff0c;在左侧导航栏选择源码视图&a…

代码pytorch-adda-master跑通记录

前言 最近在学习迁移学习&#xff0c;ADDA算法&#xff0c;由于嫌自己写麻烦&#xff0c;准备先跑通别人的代码。 代码名称&#xff1a;pytorch-adda-master 博客&#xff1a;https://www.cnblogs.com/BlairGrowing/p/17020378.html github地址&#xff1a;https://github.com…

Vue3 —— watchEffect 高级侦听器

该文章是在学习 小满vue3 课程的随堂记录示例均采用 <script setup>&#xff0c;且包含 typescript 的基础用法 前言 Vue3 中新增了一种特殊的监听器 watchEffect&#xff0c;它的类型是&#xff1a; function watchEffect(effect: (onCleanup: OnCleanup) > void,o…

第三届“赣政杯”网络安全大赛 | 赛宁筑牢安全应急防线

​​为持续强化江西省党政机关网络安全风险防范意识&#xff0c;提高信息化岗位从业人员基础技能&#xff0c;提升应对网络安全风险处置能力。由江西省委网信办、江西省发展改革委主办&#xff0c;江西省大数据中心、国家计算机网络与信息安全管理中心江西分中心承办&#xff0…

【负荷频率和电压控制】电力系统的组合负荷频率和电压控制模型研究(Simulink)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…

CXL 寄存器介绍 (1) - 寄存器分类

&#x1f525;点击查看精选 CXL 系列文章&#x1f525; &#x1f525;点击进入【芯片设计验证】社区&#xff0c;查看更多精彩内容&#x1f525; &#x1f4e2; 声明&#xff1a; &#x1f96d; 作者主页&#xff1a;【MangoPapa的CSDN主页】。⚠️ 本文首发于CSDN&#xff0c…

【贪心】CF1822 E

Problem - 1822E - Codeforces 题意&#xff1a; 思路&#xff1a; 简单复盘一下思路 首先&#xff0c;n为奇数或有一种字符出现次数> n / 2就无解的结论是可以根据样例看出来的 然后就显然的发现&#xff0c;每2个不同的回文对有1的贡献 那么这样匹配之后会有剩余的回文…

JVM - 垃圾回收机制

JVM的垃圾回收机制(简称GC) JVM的垃圾回收机制非常强大&#xff0c;是JVM的一个很重要的功能&#xff0c;而且这也是跟对象实例息息相关的&#xff0c;如果对象实例不用了要怎么清除呢&#xff1f; 如何判断对象已经没用了 当JVM认为一个对像已经没用了&#xff0c;就会把这个…

【C++STL基础入门】string类的基础使用

文章目录 前言一、STL使用概述二、string类概述1.string类的构造函数string输出示例代码 2.string类属性属性是什么属性API示例代码 3.输出输出全部输出单个字符 总结 前言 本系列文章使用VS2022&#xff0c;C20版本 STL&#xff08;Standard Template Library&#xff09;是…

linux平台实现虚拟磁盘驱动(通用的块设备驱动和基于SCSI的磁盘驱动)

by fanxiushu 2023-08-16 转载或引用请桌面原始作者。 实现linux平台的虚拟磁盘驱动&#xff0c;是为了要实现在linux远程无盘启动的。 linux平台下的无盘启动&#xff0c;现成的办法有许多&#xff0c;比如iSCSI&#xff0c;NFS&#xff0c;NBD等都可以&#xff0c; 不过我都没…

JVM中释放内存的三种方法

判断是否需要垃圾回收可以采用分析。 1标记--清除算法 分为两个阶段&#xff0c;标记和清除&#xff0c;先利用可达性分型标记还存活的对象&#xff0c;之后将没有被标记的对象删除&#xff0c;这样容易生成空间碎片&#xff0c;而且效率不稳定 标记阶段&#xff1a; 标记阶段…