c++小知识

限时加码!20+主流AI编程工具免费用 购周边加赠Coding Plan Lite,Claude Code、Cursor等即刻畅享,学习进阶更高效! 阅读详情

1、a++不能作为左值

    int a = 10;
    ++a = 1;//ok
    a++ = 1;//error
a++是先使用a的值作运算,然后再使a的值增加1,如果允许执行a++左值的赋值运算,那么就要在赋值运算之后使a值再增加1,这样赋值运算就没意义了,a最终的结果不是赋值后的结果。

2、#error指示符

指令将使编译器显示一条错误信息,然后停止编译

3、ASSERT 和 VERIFY

在DEBUG模式下,两个宏的功能是一样的,两者都对表达式进行计算,如果表达式为非0,那么什么也不做,如果表达式为0,那么输出诊断信息;在RELEASE模式下,ASSERT不会对参数里的表达式进行计算,VERIFY会计算里面的表达式(如果是函数,将会调用该函数) 
部分定义如下:

#ifdef _DEBUG
#define VERIFY(f)          ASSERT(f)
#else
#define ASSERT(f)          ((void)0)
#define VERIFY(f)          ((void)(f))
#endif


CPP基础知识 define会多次展开分配内存,const第一次使用的时候就分配内存,后面使用的时候则不需要再次分配内存减少内存的开销。b,这很危险,正确写法:#define MUL(a, b) ((a)nullptr 无法隐式转换为整形,而可以隐式匹配指针类型。const与define定义的变量。p = new int与int。 阅读详情

相关推荐

C++知识点总结

过两天就要考C++了,这次一点都不慌张和害怕,虽然看书、做题、总结也就5、6天的时间,但三遍读书法算是比较完整的过了一遍,模拟成绩也还不错,希望能够取得好成绩。O(∩_∩)O~           看了两本书,自考课本(编号04737)和C++程序设计谭浩强版的,我比较推荐后一本,浅显易懂,知识点多,例子多,可以自己多多动手写一写。 下面对学习过程中需要注意的知识点做了一些总结和导图:

好记性不如烂笔头--玲博小记 2万+

为什么后缀++只能作右值

a++只能作为右值,不能放到=的左边。因为a++是对a的值自增后,把原来的对象返回,就是返回的是一个临时对象,因此a++就只能作右值。而++a返回的是a这个对象,所以可以作左值和右值。 PS:这个日志很短,但是还是得写出来。本来这个问题是我在看Primer时就想到了,刚刚看了一个面试题,竟然忘了。所以尽量把想到的写下来。

个人的读书笔记专栏 808

CPP入门基础知识

1.命名空间 2.C++基本的输入输出流 3.重载(C++为什么支持重载?)  4.C++缺省参数  5.指针和引用(概念、使用方法、做参数、做返回值的作用,指针和引用的区别) ——————————————————————————————————————————————————————————————————— 1.命名空间 http://blog.csdn.net/passball

NICOC_的博客 1193

关于++在后为什么不可以做左值?(内含详细解释)

++在后不可以做左值的原因

qq_62398971的博客 1719

a++++a 是不是左值为什么

ka 1.什么是左值 int a = 2; 这句话里面2是一个"值",a是一个变量,它有一个4字节的内存区域,这个内存区域里面装着2,这就暗示这个内存区域可以被改写,可以被赋值,可以出现在=号的左边 a是一个"左值" 而2就仅仅是一个2,它是一个值,我看看到它,就认为它是一个2,只能把他赋给别人,不能被赋值 2是一个"右值",而且不能是"左值",而a可以赋值给别人,所以a即是一

Steve Sun的专栏 6065

a++为什么不能左值

b = a++ 相当于 b = a, a = a + 1 b = ++ a 相当于a = a +1, b = a     为什么a++不能左值 a++返回的是自身的值副本,所以不能作为左值 int int::operator++(int) {    int oldvalue = *this;    ++*this;    return

samsam318的专栏 650

从C到CPP过渡,你需要了解这些知识

命名空间是一个声明性区域,为其内部的标识符(类型、函数和变量等的名称)提供一个范围namespace本质是定义出一个域,这个域跟全局域各自独立,不同的域可以定义同名变量,所以下面的rand不在冲突了namespace只能定义在全局,并且可以嵌套定义项目工程中多文件中定义的同名namespace会认为是同一个namespace,不会冲突C++标准库都放在⼀个叫std(standard)的命名空间中//定义// 例如int val;// 默认访问函数指针的地址。

Vect的博客 1083

初识Cpp之 一、基础知识

C++融合了三种不同的编程方式:1、C语言代表的过程性语言,2、C++在C语言的基础上添加的类代表的面向对象语言,3、C++模板支持的泛型编程。使用C++的原因之一是为了利用其面向对象的特性。要利用这种特性,必须对标准C语言知识有较为深入的了解,因为它提供了基本类型、运算符、控制结构和语法规则。​ 面向对象编程(Object Oriented Programming, OOP)的诞生,试图让语言来满足问题的要求,其理念是设计与问题本质特性相对应的数据格式。

Shen Mu Xin's Blog 2961

cpp知识章节

类和对象cpp-CSDN博客第四章----运算符重载-CSDN博客第五章----继承-CSDN博客

2401_86517033的博客 345

关于C++ .h文件和.cpp文件的知识梳理

C++ 关于.h文件和.cpp文件的知识梳理(1)1. C++程序的编译过程2. #pragma once 有什么作用3. 在头文件中定义static变量和const常量4.正确声明和定义变量的方法--extern 1. C++程序的编译过程 C++程序的编译过程可以分为四个步骤,分别为预处理, 编译,汇编,链接。他们的工作内容分别为: 预处理:展开头文件,去除源代码中的注释等。 编译: 将预处理后的程序转换成汇编代码。 汇编: 将汇编代码进一步转换成二进制机器码。 链接:将多个目标文件及其所需的库文件

qq_41582834的博客 3335

C++】Cpp入门基础知识

Cpp入门基础知识  一,命名空间     首先应该明白数据在内存中的存储位置,如下图所示;  理解域为一个代码框,一个变量的作用域为一个代码框,在主函数外定义的无框变量的作用域是全局即整个程序。 在任何一个域中都可以使用全局变量,所以应尽量减少使用全局变量,会让程序不稳定。 在不同的域可以重名定义变量,如下面的变量a,输出时使用该域中的变量。 namespace定义一个域,u

LazyFish的博客 999

【面试知识整理】CPP——C++ 11的新特性

【面试知识整理】CPP——C++ 11的新特性作者yanhealth发表于2017-02-12原创文章,转载请注明: 转载自:严健康的个人博客 http://www.yanjiankang.cn/本文链接地址: http://www.yanjiankang.cn/cpp_11_new_feature/Lambda 表达式Lambda 表达式就是用于创建匿名函数的。为什么说 lambda 表达式如此...

caogenwangbaoqiang的博客 1万+

CPP后台开发知识总结

。。。。

Go_hack的博客 1771

cpp基础知识

语言:C++ 变量和基本类型 基本内置类型 算数类型 算数类型就是我们平常使用的int, double, char, long等等,这里需要注意的是在平时的编程中应该如何正确选择适当的类型。 如何选择适当的类型 当明确知晓数值不可能为负数的时候,选择无符号类型 使用int执行整数运算,如果超出int的范围,则使用long long 执行浮点数运算选用double,一般不选用其他的浮点数类型 类型转换 当一个算术表达式中既有无符号数又有int值时,int值就会转换为无符号数 当从无符号.

m0_52363848的博客 605

C++:关于类以及h/cpp文件的一些实用知识

一、VC编译原理 解决重定义问题,首先要明白VC的编译原理: VC只编译cpp文件,这些cpp文件构成将来的exe; 当VC编译A.cpp文件的时候,如果遇到了语句#include "B.h",实质上是将"B.h"文件中的代码全部“复制”到A.cpp中,然后再继续编译A.cpp。 当在B.h文件中定义全局变量a等,即使使用了避免文件重复包含的方法(如下节提到的两种方法),是不能避免“A.cpp中...

dashumak的博客 1567

GESP C++ 一级知识点总结

GESP C++ 一级

qq_60918483的博客 4799

C++必须掌握的知识总结

C++知识做了个总结,因为网络资源过于零碎。 大部分教材和资料又都过于片面,这也是情理之中,毕竟C++单单语法设计就很厚一本书了,STL又是如此,对象模型,新标准等等,都是一本书的知识量。除非都看完,否则很难去把握和理解哪些是实际使用上实用的和必须掌握的。实际上我们只需要花20%的时间掌握其中最重要的80%即可。 本文提到的都是作为一个合格的开发者,都应该熟知这些内容。多线程相关的暂不讨论。 下...

u012456479的博客 2300
上一篇: c++冷门关键字
下一篇: 流迭代器初识
hi5000
博客等级 码龄14年 2粉丝 24原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值