C/C++
学习C语言
sangba2019
这个作者很懒,什么都没留下…
展开
-
C笔记:引用调用,通过指针传递
【代码】C笔记:引用调用,通过指针传递。原创 2023-10-25 23:40:20 · 346 阅读 · 0 评论 -
python、MATLAB的默认浮点数精度
Float为单精度,内存中占4个字节,有效数位是7位(因为有正负,所以不是8位)double为双精度,占8个字节,有效数位是16位python\C\matlab中的浮点数是采用IEEE754标准存储的,python运算会出现的小bugpython浮点数默认精度是floatmatlab浮点数默认精度是double,且无法修改参考:1、python数字类型与浮点数精度2、[已答复] 如何更改MATLAB默认的变量存储为single浮点数(默认是double)...原创 2022-05-23 21:02:56 · 3070 阅读 · 0 评论 -
C++笔记:静态成员可直接通过类访问
文章目录前言静态成员的访问方式前言静态成员的访问方式无论是静态成员变量还是静态成员函数,都是三种访问方式通过对象访问通过对象指针访问通过类名访问#include <iostream>using namespace std;class Car {public: static int ms_count; static Car* ms_Car; static int getCount() { return ms_count; } static Car* sha.原创 2021-05-27 01:02:10 · 9597 阅读 · 2 评论 -
C++笔记:静态成员函数和静态成员变量的使用
文章目录前言静态成员的访问和静态成员变量的地址一个对象计数的问题前言静态成员的访问和静态成员变量的地址#include <iostream>using namespace std;class Car {public: int m_age; static int m_price; static void run(int m_price) { cout << "run(int m_price):" << m_price << endl;.原创 2021-05-26 12:38:27 · 194 阅读 · 1 评论 -
C++笔记:父类中声明为虚函数,子类重写后为虚函数
文章目录前言父类中声明为虚函数,子类重写后为虚函数查看汇编代码子类调用父类的成员函数前言父类中声明为虚函数,子类重写后为虚函数代码#include <iostream>using namespace std;struct Animal { void speak() { cout << "Animal::speak()" << endl; } void run() { cout << "Animal::run()" <.原创 2021-05-25 16:16:39 · 1239 阅读 · 0 评论 -
C++笔记:构造函数调用构造函数必须写在初始化列表中
文章目录前言先查看直接调用的结果查看汇编构造函数调用构造函数必须写在初始化列表中查看汇编前言通过汇编查看构造函数调用构造函数的调用路径先查看直接调用的结果#include <iostream>using namespace std;struct Person { int m_age; int m_height; Person() { Person(10, 20); } Person(int age,int height) { m_age = .原创 2021-05-25 12:18:07 · 258 阅读 · 1 评论 -
C++笔记:虚表及其汇编
文章目录前言前言查看一下,虚表的调用路径,以便更好地理解虚表先查看代码#include <iostream>using namespace std;struct Animal { int m_age; virtual void speak() { cout << "Person::speak()" << endl; } virtual void run() { cout << "Person::run()" << .原创 2021-05-25 11:04:11 · 197 阅读 · 0 评论 -
C++笔记:析构函数是清理内部产生的堆空间
文章目录前言前言先看代码#include <iostream>using namespace std;struct Person { int m_age; //用来做初始化的工作 Person() { m_age = 0; cout << "Person::person()" << endl; } //用来做内存清理的工作,内部产生的堆空间 ~Person() { cout << "~Person::person.原创 2021-05-24 19:25:39 · 544 阅读 · 0 评论 -
C++笔记:类成员变量的初始化
文章目录前言成员变量的初始化(有无构造函数)结论所有成员变量初始化前言成员变量的初始化(有无构造函数)查看代码#include <iostream>using namespace std;struct Person { int m_age; };//全局区 成员变量默认初始化为0 无论有没有构造函数Person g_person;int main() { //栈空间 默认没有初始化 Person person; //堆空间 默认没有初始化 Pers.原创 2021-05-24 15:14:33 · 620 阅读 · 0 评论 -
C++笔记:构造函数
文章目录前言无参的构造函数有参的构造函数一旦自定义了构造函数,必须用其中一个自定义构造函数来初始化对象。全局区、栈空间和通过new申请的堆空间都会调用构造函数通过malloc申请堆空间不会调用构造函数前言构造函数(也叫构造器),在对象创建的时候自动调用,一般用于完成对象的初始化工作构造函数与类同名,无返回值(void都不用写),可以由参数,可以重载,可以有多个构造函数一旦自定义了构造函数,必须用其中一个自定义的构造函数来初始化对象无参的构造函数#include <iostream&g.原创 2021-05-24 00:03:49 · 128 阅读 · 1 评论 -
C++笔记:堆空间的初始化
文章目录前言malloc/freenew/delete申请堆空间在什么情况下会失败malloc申请堆空间时堆空间的初始化利用memset初始化new申请堆空间时堆空间的初始化前言什么情况下需要堆空间?为了在程序运行过程中,自由控制内存的生命周期、大小malloc/free*p指向的是这4个字节的第一个字节,10赋值给这4个字节的第一个字节若想给4个字节都赋值:new/deleteC++中,看到new就是申请堆空间申请堆空间在什么情况下会失败堆空间内存不够用、堆空间内存很.原创 2021-05-23 10:04:34 · 1305 阅读 · 5 评论 -
C++笔记:代码区的函数如何访问栈空间的成员变量
文章目录前言假设类中提供了一个入口,供访问this指针前言我们写类时,类中通常包括成员变量(存放在栈空间)和函数(存放在代码区),但函数能访问栈空间的成员变量,是如何实现的呢?假设类中提供了一个入口,供访问假设类中提供了一个入口,供访问但实际不用这么麻烦this指针实际中,调用person2.run()时,内部已经帮忙做好操作this指针存储着函数调用者的地址调用对象的函数时,也就是函数访问栈空间时的反汇编可以看出,直接将this地址赋为ecx,并调用函数this可以省.原创 2021-05-23 09:50:07 · 172 阅读 · 0 评论 -
C++笔记:使用对象直接访问成员与使用指针间接访问成员的差别
文章目录使用对象直接访问成员与使用指针间接访问成员的差别使用对象直接访问成员与使用指针间接访问成员的差别查看代码#include <iostream>using namespace std;struct Person { int age; int id; int height; void run() { cout << "person::run()" << age << endl; }}.原创 2021-05-20 21:05:33 · 716 阅读 · 0 评论 -
C++笔记:类里面的函数占用内存吗?
文章目录类里面的函数占用内存吗?类里面的函数占用内存吗?类占用成员变量的4个字节,类里面的函数占用内存吗?每个对象都有自己的成员变量(非公用),但对于成员函数,每次调用时都是经由内存地址找到唯一的函数进行调用(是公用)【函数被调用,才会编译;函数一旦编译完,就有自己的内存地址】代码如下:#include <iostream>using namespace std;struct Person { int age; void run() { cou.原创 2021-05-20 17:09:50 · 2545 阅读 · 0 评论 -
C++笔记:非常量左值的引用只能是非常量左值
文章目录引用数组-第一种写法引用数组-第二种写法考虑到指针的引用左值的定义非常量左值引用总结查看反汇编参考引用数组-第一种写法#include <iostream>using namespace std;int main(){ int arr[] = { 1,2,12 }; //引用 int(& ref)[3] = arr; //正确写法 int & ref1 = arr; //错误写法 //指针 int*.原创 2021-05-20 12:02:25 · 628 阅读 · 0 评论 -
C++笔记:默认参数
文章目录要点正确示范默认参数只能按照从右到左的顺序要点C++允许函数设置成默认参数,在调用时可以根据情况省略实参正确示范#include <iostream>using namespace std;int sum(int a = 5, int b = 7) { return a + b;}int main(){ cout << sum() << endl; cout << sum(10, 10) <<.原创 2021-04-16 15:45:23 · 129 阅读 · 0 评论 -
C++笔记:函数重载(overload)
文章目录要点仅仅返回值不同,不能构成重载函数名相同,参数类型不同、参数个数不同、参数顺序不同才能构成重载反汇编要点函数重载只能根据参数个数,参数类型,参数位置实现,不能根据返回值来实现不能根据返回值来实现不能根据返回值来实现仅仅返回值不同,不能构成重载函数名相同,参数类型不同、参数个数不同、参数顺序不同才能构成重载反汇编...原创 2021-04-16 15:19:41 · 183 阅读 · 0 评论 -
C++笔记:error MSB6006: “CL.exe”已退出,代码为 2 + VS无法启动程序,系统找不到指定的文件
文章目录bug汇总参考bug汇总VC2019中出现“error MSB6006: “CL.exe”已退出,代码为 2。”。如何解决?参考“CL.exe”已退出,代码为 2原创 2021-04-16 14:26:23 · 2499 阅读 · 1 评论