学习笔记--C++

C++ Prinmer Plus 学习笔记(第一章) C++ Prinmer Plus 学习笔记(持续更新) (PS:参考书籍是C++Prinmer Plus 和易学C++) 什么是C++?   1:在C语言基础上添加了“面向对象编程”的支持;  2:继承了C语言的高效、简洁、快速和可移植性的传统; 3:模版特性提供了另一种全新的编程方法-------通用编程; 4:新术语对象、类、封装、数据隐藏、多态和继承等。 C语言编程原理 阅读详情

1.C语言运算符优先级

运算符按照优先级大小由上向下排列,在同一行的运算符具有相同优先级。第二行是所有的一元运算符。
 

运算符
解释
结合方式
() [] -> . 括号(函数等),数组,两种结构成员访问
由左向右
! ~ ++ -- + - 

* & (类型) sizeof

否定,按位否定,增量,减量,正负号,

间接,取地址,类型转换,求大小

由右向左
* / % 乘,除,取模
由左向右
+ - 加,减
由左向右
<< >> 左移,右移
由左向右
< <= >= > 小于,小于等于,大于等于,大于
由左向右
== != 等于,不等于
由左向右
& 按位与
由左向右
^ 按位异或
由左向右
| 按位或
由左向右
&& 逻辑与
由左向右
|| 逻辑或
由左向右
? : 条件
由右向左
= += -= *= /= 

&= ^= |= <<= >>=

各种赋值
由右向左
, 逗号(顺序)
由左向右

 

2.C++运算符优先级

PrecedenceOperatorDescriptionExampleAssociativity
1 ()
[]
->
.
::
++
--
Grouping operator
Array access
Member access from a pointer
Member access from an object
Scoping operator
Post-increment
Post-decrement
(a + b) / 4;
array[4] = 2;
ptr->age = 34;
obj.age = 34;
Class::age = 2;
for( i = 0; i < 10; i++ ) ...
for( i = 10; i > 0; i-- ) ...
left to right
2 !
~
++
--
-
+
*
&
(type)
sizeof
Logical negation
Bitwise complement
Pre-increment
Pre-decrement
Unary minus
Unary plus
Dereference
Address of
Cast to a given type
Return size in bytes
if( !done ) ...
flags = ~flags;
for( i = 0; i < 10; ++i ) ...
for( i = 10; i > 0; --i ) ...
int i = -1;
int i = +1;
data = *ptr;
address = &obj;
int i = (int) floatNum;
int size = sizeof(floatNum);
right to left
3 ->*
.*
Member pointer selector
Member pointer selector
ptr->*var = 24;
obj.*var = 24;
left to right
4 *
/
%
Multiplication
Division
Modulus
int i = 2 * 4;
float f = 10 / 3;
int rem = 4 % 3;
left to right
5 +
-
Addition
Subtraction
int i = 2 + 3;
int i = 5 - 1;
left to right
6 <<
>>
Bitwise shift left
Bitwise shift right
int flags = 33 << 1;
int flags = 33 >> 1;
left to right
7 <
<=
>
>=
Comparison less-than
Comparison less-than-or-equal-to
Comparison greater-than
Comparison geater-than-or-equal-to
if( i < 42 ) ...
if( i <= 42 ) ...
if( i > 42 ) ...
if( i >= 42 ) ...
left to right
8 ==
!=
Comparison equal-to
Comparison not-equal-to
if( i == 42 ) ...
if( i != 42 ) ...
left to right
9 & Bitwise AND flags = flags & 42; left to right
10 ^ Bitwise exclusive OR flags = flags ^ 42; left to right
11 | Bitwise inclusive (normal) OR flags = flags | 42; left to right
12 && Logical AND if( conditionA && conditionB ) ... left to right
13 || Logical OR if( conditionA || conditionB ) ... left to right
14 ? : Ternary conditional (if-then-else) int i = (a > b) ? a : b; right to left
15 =
+=
-=
*=
/=
%=
&=
^=
|=
<<=
>>=
Assignment operator
Increment and assign
Decrement and assign
Multiply and assign
Divide and assign
Modulo and assign
Bitwise AND and assign
Bitwise exclusive OR and assign
Bitwise inclusive (normal) OR and assign
Bitwise shift left and assign
Bitwise shift right and assign
int a = b;
a += 3;
b -= 4;
a *= 5;
a /= 2;
a %= 3;
flags &= new_flags;
flags ^= new_flags;
flags |= new_flags;
flags <<= 2;
flags >>= 2;
right to left
16 , Sequential uation operator for( i = 0, j = 0; i < 10; i++, j++ ) ... left to right


例如:C++中

1)y=*px++ 相当于y=*(px++) (++优先级高)

2)&ptr->a等于&(ptr->a)而不是等于(&ptr)->a

3)逻辑运算符的优先级: !(非) >   &&(与)   >   ||(或)

4)关系运算符优先级

      <     <=       >       >=                       ==    !=

       优先级相同(高)            优先级相同(低)

5)  条件运算符优级高于赋值运算符,低于逻辑运算符   x=a>b?a:b;

6)有10种复合运算符:+=, -=, *=, /=, %=,<<=,>>=,&=,^=,|=


#include <iostream>


using namespace std;

int main()
{
const char *cp="hello";
cout<<cp<<" "<<++cp<<endl;
getchar();
return 0;

}

输出为 ello  ello

因为++运算符优先级高,先算++cp,再执行cout语句.



Disk Drill 使用教程 Disk Drill只需单击几下,即可恢复USB闪存驱动器上已删除的数据,包括丢失的照片,文档和其他文件类型。Disk Drill是真正的多合一应用程序,可在Mac上恢复闪存驱动器。Disk Drill将自动应用最佳的笔式驱动器恢复算法来恢复Mac数据。 USB闪存驱动器是一种传输和存储信息的好方法,但是如果错误地丢失或删除了存储在其中的文件,会发生什么呢?当您需要Mac的闪存驱动器数据恢复软件时,Disk Drill是您的最佳选择。Disk Drill将扫描您的USB闪存驱动器(也称为笔式驱动器)并查找 阅读详情

相关推荐

鸿蒙5.0进阶开发:UI开发-不依赖UI组件的全局自定义弹出框 (openCustomDialog)(推荐)

本文介绍通过入参形式为ComponentContent创建自定义弹出框............

AyomQAQ的博客 1850

C优先级 return 总结

(1)应该是前自增的优先级和*相同,结合性是自右向左。后自增的优先级要高于*,其结合性是自左向右 !Example:#include  iostream>  using namespace std;  int main()  {    int *p=new int[2];    p[0]=1;    p[1]=4;    for(int i=0;i2;i++)    {        co

Blee.Yu 1199

Cursor3.0新界面使用说明

本文摘要:Cursor 3.x版本更新后,提供了两套主界面:Editor(类似VSCode的代码编辑器)和AgentsWindow(以AI智能体为中心的新界面)。Editor适合日常编码,AgentsWindow则支持并行运行多个AI任务、云端协作和多仓库管理。通过Ctrl+E可快速切换布局。文章详细介绍了AI聊天面板的操作技巧、四种工作模式(Agent/Plan/Ask/Debug)的区别,以及AgentsWindow的多任务管理功能。同时提供了Windows快捷键速查、中文化设置方法,并对比了新旧版本的

2501_90421497的博客 727

常用批处理命令总结4之For命令详解

在批处理中,for是最为强大的命令语句,它的出现,使得解析文本内容、遍历文件路径、数值递增/递减等操作成为可能;配合if、call、goto等流程控制语句,更是可以实现脚本复杂的自动化、智能化操作;合理使用for语句,还能使代码大为简化,免除各位编写大量重复语句之苦。而能否熟练使用for语句,已经成为衡量一个人批处理水平高低最主要的标准。 for语句基本形态: 在cmd窗口中:for %I i...

weixin_33682719的博客 562

【RViz2】导入urdf模型时报错:Could not load resource xxx,Unable to open file xxx,Error retrieving file xxx

初学ROS2,想要在RViz2中显示urdf模型。其中.urdf文件引用了外部的meshes文件夹。

qq_43557907的博客 9487

S32K144 ADC硬件触发+DMA传输实战:从寄存器配置到数据采集全流程

本文详细解析了S32K144微控制器中ADC硬件触发与DMA传输的协同工作机制,提供了从寄存器配置到数据采集的全流程实战指南。通过PDB定时触发ADC转换,并利用DMA实现数据自动搬运,构建了高效、实时的汽车级数据采集系统,有效释放CPU资源,满足汽车电子应用的严苛要求。

weixin_29194693的博客 475

c++学习笔记(1)-devcpp软件安装和第一个cpp程序

windows环境参考:直接从官网下载最新版即可。

在读控制专业学习笔记 286

CCS8.1 导入CCS3.3工程方法

    CCS3.3作为开发人员使用最广开发工具,研究人员手上存在不少该版本的建立的程序版本,然而随着TI公司推出高级版本的CCS平台,在新的平台上集成了更加丰富的功能和优点。利用新版本的平台在开发和编译旧版本工程上可以节省大量时间和精力。在使用新版本开发3.3版本工程时,首要解决的就是加载3.3的工程文件,现将加载过程记录如下: 第一步:Project-&gt;Import Legacy CC...

1万+

CPP/C++学习笔记04

主要内容:初始化列表、隐式类型转换、匿名对象、static成员、友元函数&友元类、内部类和拷贝对象时的一些编译器优化

qq_48637306的博客 507

c语言国际象棋(easyx图形库)

c语言实现的国际象棋,先放源码,有空再更 所有图形资源均来源于网络,侵删 #include <graphics.h> #include<stdio.h> #include<conio.h> #include<math.h> #include<stdlib.h> #include <time.h> #define HEIGHT 800 #define WIDTH 1100 #define SIZE 100 #define true.

Betelgeuse13的博客 1914

第186篇 前馈控制——提升跟踪精度的补充手段

文章摘要: 本文介绍了前馈控制的原理及其在工程中的应用。与反馈控制不同,前馈控制通过提前预测目标值或扰动信息来生成控制量,避免误差出现后再纠正的延迟问题,适用于机器人、机械臂等高速运动场景。前馈控制通常与PID反馈配合使用,前者提供粗调,后者进行微调。文章详细讲解了前馈增益的调节方法(模型法、实验法、自适应法)及两种前馈类型(指令前馈和扰动前馈),并提供了代码示例和面试实战建议,强调前馈与反馈的协同设计是提升控制精度的关键。最后预告了下一篇将讨论串级PID控制架构。

郑伟强dev的专栏 398

UE C++学习笔记之创建组件

UE C++学习笔记之创建组件

AgilityBaby的博客 2061

【Qwen2微调实战】LLaMA-Factory框架对Qwen2-7B模型的微调实践

在人工智能的浪潮中,大型语言模型(LLMs)正逐渐成为研究和应用的热点。它们在自然语言处理(NLP)的各个领域,如文本生成、翻译、问答等任务中展现出了卓越的能力。Qwen2-7B模型,作为该领域的佼佼者,不仅因其庞大的参数量和强大的表示能力受到关注,更因其在微调后能够更好地适应特定任务而备受关注。本文将详细介绍如何利用LLaMA-Factory这一高效的微调框架对Qwen2-7B进行微调,以期达到提升模型在特定任务上的表现。

寻道AI,探索AI无限可能! 2万+

C++学习笔记(七)——log4cpp

C++学习笔记(七)——log4cpp log4cpp的下载与安装 1.下载log4cpp-1.1.1.tar.gz 2. 安装:先将log4cpp-1.1.1.tar.gz拖入用户主目录, 然后再执行以下步骤: $ sudo cp log4cpp-1.1.1.tar.gz /usr/local $ su # cd /usr/local # tar zxvf log4cpp-1.1.1.tar.g...

weixin_39828926的博客 519

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

CPP/C++学习笔记06

主要内容:模板

qq_48637306的博客 259

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

qt/C++ 学习笔记之sapi调用文字朗读demo

【代码】qt/C++ 学习笔记之sapi调用文字朗读demo。

weixin_41447544的博客 1760

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

c++学习笔记_如何run一个c++程序

#2.3 a.cpp, class A具体实现。##2.4 b.h, 声明class B及成员。##2.5 b.cpp, class B具体实现。##2.2 a.h, 声明class A及成员。##2.1 主函数文件: main.cpp。

编程驴子的博客 697

cpp学习笔记1

那么拷贝出的局部变量对象中的a指向的空间和被拷贝对象中的a指向的空间是相同的,所以当拷贝出的局部变量对象被使用完进行析构时就会把该指针指向的空间释放,但是被拷贝对象在程序结束后也要进行析构,这就会导致该空间被二次释放,从而引发报错。解决方案:对默认拷贝构造函数进行重写,当拷贝时分配一块新的内存来解决”拷贝出的局部变量对象中的a指向的空间和被拷贝对象中的a指向的空间是相同的“这一问题,这样引用或者指针与否就没有必要了。在继承的过程中,父亲对象中的私有成员也被继承给了儿子,只是编译器将其隐藏。

m0_73959697的博客 1269

C++ 学习笔记【基础篇】

C++ 学习笔记【基础篇】

qq_54900679的博客 2057

C++的学习笔记

C++笔记

abcooxj的博客 629

【CPP】C++学习笔记

【代码】【CPP】C++学习笔记。

mark_clemens的博客 895

[cpp]C++学习笔记-filesystem

C++11 提供的filesystem提供了丰富的文件操作的类和函数。filesystem 库是一个可一直的文件系统操作相关的库,使用POSIX标准表示文件系统的路径,支持多种操作系统平台,因此使用filesystem可以编写跨平台操作目录,文件的C++程序。

haily笔记 1万+

[学习笔记] 1. C++ / CPP基础入门

C++入门知识

Le0v1n 的博客 3586

CPP/C++学习笔记05

主要内容:动态内存管理

qq_48637306的博客 447

Makefile学习笔记 - 我的CPP之路 - C++博客

Makefile学习笔记 - 我的CPP之路 - C++博客 Makefile学习笔记 - 我的CPP之路 - C++博客Makefile学习笔记Makefile学习笔记先列出一个很简单的Makefile例子:---------hd.cpp#include "hd....

136

BambuStudio学习笔记:ProjectTask.cpp

Slic3r 项目任务模块

zzzkk2009的专栏 966
下一篇: C/C++中extern的用法
L_FOR_SALAH
博客等级 码龄17年 0粉丝 2原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值