随笔 - 57  文章 - 0 评论 - 0 阅读 - 78145
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

随笔分类 -  C++

关于 array 和 &array (数组名与数组地址)
摘要:对于数组a: 在绝大多数情况下,a 等价于 &a[0],即数组名等于数组首元素地址(等同于数组首地址) 只有两种情况例外: 1. 对数组名取地址(&a),此时虽然数值上等于 a,但表示含义不同,a 表示首元素地址,&a 表示整个数组的首地址, 因此 a+1 ≠ &a+1,具体见前篇; 2. 使用 s 阅读全文
posted @ 2023-08-04 10:49 wkxnk 阅读(71) 评论(0) 推荐(0) 编辑
#include<> 和 #include"" 的区别
摘要:#include<>:在 编译器默认的头文件目录 中搜索包含的头文件 #include"" :首先在 当前源文件所在目录 中搜索包含的头文件,如果没有,再在 编译器默认的头文件目录 中搜索 阅读全文
posted @ 2023-07-29 23:56 wkxnk 阅读(8) 评论(0) 推荐(0) 编辑
C++数组下标可以是负数
摘要:int a[5] = {0, 1, 2, 3, 4} int *p = a+4; cout << p[-2] << endl; // 2 p[-2] 表示从指针当前位置向前寻址两个数据类型长度 注1:只有在 p 是指针时才能这么做,不应当出现 a[-2] 这样数组名加负数下标的用法,因为会超出数组地 阅读全文
posted @ 2023-07-22 17:29 wkxnk 阅读(190) 评论(0) 推荐(0) 编辑
vector 容器的 begin, end, front, back 函数的区别
摘要:begin() 返回首位元素的迭代器 end() 返回末尾元素下一个位置的迭代器 front() 返回首位元素的引用 back() 返回末尾元素的引用 阅读全文
posted @ 2023-07-06 23:57 wkxnk 阅读(125) 评论(0) 推荐(0) 编辑
【易错点】getchar, printf, gets 的区别
摘要:getchar 为输入单个字符,输入 "et al",得到的是 'e', 't', ' ', 'a', 'l' printf 为输入多个参数,以空格号为分隔,输入 “et al”(%s输入格式),得到的是 "et", "al" gets 为输入字符串,结束标记为换行符 '\n',输入结束以后读取到的 阅读全文
posted @ 2023-06-15 00:13 wkxnk 阅读(89) 评论(0) 推荐(0) 编辑
【易错点】数组名,数组名+偏移,数组取地址 与 sizeof 操作符
摘要:int a[3] = {1, 2, 3}; a: 数组名,数组中第一个元素的地址,相当于 &a[0] &a:整个数组的地址,在数值上等于 a a+1:数组中第二个元素的地址,相当于 &a[1] &a+1:整个数组结束以后后面一个位置的地址 即:a = &a, 但 a+1 ≠ &a+1 a[0] a[ 阅读全文
posted @ 2023-06-12 22:43 wkxnk 阅读(58) 评论(0) 推荐(0) 编辑
数据类型所占的字节数
摘要:32位编译器: char short int long long long float double 指针 1 2 4 4 8 4 8 4 64位编译器: char short int long long long float double 指针 1 2 4 8 8 4 8 8 阅读全文
posted @ 2023-06-12 00:01 wkxnk 阅读(26) 评论(0) 推荐(0) 编辑
虚函数与纯虚函数
摘要:虚函数: 函数前有virtual关键字,子类继承后用于动态多态 纯虚函数: 函数前有virtual关键字,且函数列表后必须有 “=0”,纯虚函数没有函数体,只能在子类中重载后实现函数体并调用 阅读全文
posted @ 2023-06-10 00:26 wkxnk 阅读(10) 评论(0) 推荐(0) 编辑
重载,覆盖,隐藏与多态
摘要:如果父类与子类中拥有同名的函数: 1. 如果父类函数前没有virtual,且父子同名函数的参数列表不同(参数个数、类型和顺序至少有一个不同), 则构成重载,用父类指针调用该函数名,调用的是子类函数,父类函数被覆盖 / 隐藏 / 不可见 (注:若两个函数参数列表相同,只有返回值类型不同,不构成重载) 阅读全文
posted @ 2023-06-10 00:22 wkxnk 阅读(12) 评论(0) 推荐(0) 编辑
父类与子类的构造函数
摘要:1. 子类实例化时一定会调用父类的构造函数,然后再调用自己的构造函数(析构时顺序相反) (因为子类继承了部分父类的成员变量,需要调用父类的构造函数来初始化) 2. 若有自定义的构造函数,则系统调用自定义构造函数;如果没有,则系统会自动生成一个默认的构造函数并调用它 (系统自动调用属于“隐式调用”) 阅读全文
posted @ 2023-06-10 00:05 wkxnk 阅读(106) 评论(0) 推荐(0) 编辑
C++类访问权限与继承方式的关系
摘要:类成员访问权限有3种: public, protected, private 三者区别: 权限级别 类内函数 派生类函数 对象 public √ √ √ protected √ √ × private √ × × (注:“√” 表示可访问,“×” 表示不可访问) 派生类继承基类的继承方式也有三种: 阅读全文
posted @ 2023-05-31 00:01 wkxnk 阅读(15) 评论(0) 推荐(0) 编辑
class和struct的区别
摘要:对于纯C语言: 没有class,struct仅作为一种包含多种基本类型 (int, char, double) 的组合体,没有类的概念,没有继承、多态等功能 对于C++: C++中的struct是对C的兼容与扩充,功能和class区别不大,除了成员变量还可以包含成员函数,有继承、多态等功能,唯一的区 阅读全文
posted @ 2023-05-27 16:51 wkxnk 阅读(29) 评论(0) 推荐(0) 编辑
类的四大特性
摘要:封装、继承、多态、抽象 其中抽象和封装是对类的描述,继承是类的功能,多态是基于继承功能之上的功能 阅读全文
posted @ 2023-05-13 17:31 wkxnk 阅读(87) 评论(0) 推荐(0) 编辑
const与指针的四种关系
摘要:定义变量 int a = 1; const int b = 2; 1. 将 普通变量地址 赋给 普通指针: int * p1 = a; // 正确 2. 将 const变量地址 赋给 普通指针: int * p2 = b; // 错误 // p2是普通指针,意味着可以通过p2修改b的值,而b为con 阅读全文
posted @ 2023-05-10 13:29 wkxnk 阅读(60) 评论(0) 推荐(0) 编辑
常量指针和指针常量的区别
摘要:定义变量 int a = 1; int b = 2; 常量指针: 顾名思义,指向常量的指针(a pointer to const int,底层const),不能通过该指针修改变量的值(不通过该指针仍然可以修改) const int * p1 = &a; // *p1为const,即指针指向的值为co 阅读全文
posted @ 2023-05-10 13:05 wkxnk 阅读(28) 评论(0) 推荐(0) 编辑
关于不同平台、环境下64位int型的输入输出方式(转)
摘要:C语言 64位int 定义方式: Linux: long long Windows:__int64 C语言 64位int 输出方式: Linux: "%lld" Windows:"%I64d" C++ 64位int 定义方式: Linux: long long Windows:__int64 C++ 阅读全文
posted @ 2020-08-31 18:47 wkxnk 阅读(1058) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示