摘要: 关于构造函数 类的构造模式用于对象的初始化 构造模式与类同名并且没有返回值 构造函数在对象定义时自动被调用 问题 如何判断构造函数的执行结果? 在构造函数中执行return语句会发生什么? 构造函数执行结果意味着对象构造成功? 1 #include <stdio.h> 2 class Test 3 阅读全文
posted @ 2020-01-10 20:08 认真做个普通人 阅读(299) 评论(0) 推荐(0) 编辑
摘要: C++中的动态内存分配 C++中通过new关键字进行动态内存分配 C++中的动态内存申请是基于类型进行的 delet关键字用于内存释放 1 1 //变量申请 2 2 Type*pointer = new Type; 3 3 //.... 4 4 delete pointer; 5 5 6 6 //数 阅读全文
posted @ 2020-01-10 19:54 认真做个普通人 阅读(808) 评论(0) 推荐(0) 编辑
摘要: 函数参数扩展 C++中可以在函数声明时为参数提供一个默认值 当函数调用时没有提供参数的值,则使用默认值 函数默认参数的规则 参数的默认值必须从右向左提供 函数调用时使用了默认值,则后续参数必须使用默认值 #include "stdio.h" int mull(int x = 2); int add( 阅读全文
posted @ 2020-01-10 19:47 认真做个普通人 阅读(286) 评论(0) 推荐(0) 编辑
摘要: 函数从意义上应该是一个独立的功能模块 函数名要在一定程度上反映函数的功能 函数参数名要能够体现参数的意义 尽量避免在函数中使用全局变量 当函数参数不应该在函数体内部被修改时,应该加上const声明 如果参数是指针,且仅当做输入参数时,则应该加上const声明 void str_copy(char*s 阅读全文
posted @ 2020-01-10 19:41 认真做个普通人 阅读(401) 评论(0) 推荐(0) 编辑
摘要: 当字符串中有双引号时,需要使用“\”进行转义。 字符串中有“\”,需要使用“\\” 例如:const char* ip = "ifconfig | grep \"inet\" | grep -v 127.0.0.1 | awk '{print $2}'|grep '\\.'"; 阅读全文
posted @ 2020-01-10 19:34 认真做个普通人 阅读(418) 评论(0) 推荐(0) 编辑
摘要: 1. const只读变量 const修饰的变量是只读的,本质还是变量 const修饰的局部变量在栈上分配空间(可以通过指针修改) const修饰的全局变量在全局数据区分配空间(指针也修改不了) const只在编译期有用,在运行期无用 const修饰的变量不是真的常量,它只是告诉编译器该变量不能出现在 阅读全文
posted @ 2020-01-10 19:31 认真做个普通人 阅读(221) 评论(0) 推荐(0) 编辑
摘要: 1.枚举类型的使用方法 enum是C语言中的一种自定义类型 enum值是可以根据需要自定义的整型值 第一个定义的enum值默认为0 默认情况下的enum值是在前一个定义值的基础上加1 enum类型的变量只能取定义时的离散值 enum中定义的值是C语言中真正意义上的常量 在过程中enum多用于定义整型 阅读全文
posted @ 2020-01-10 19:25 认真做个普通人 阅读(181) 评论(0) 推荐(0) 编辑
摘要: 1.三目运算符 三目运算符(a?b:c)可以作为逻辑运算的载体 规则:当a的值为真时,返回b的值;否则返回c的值 等价于if else 在C语言中,三目符不能作为左值,三目运算符最终返回的是一个值,不是变量。(注意在C语言和C++中三目运算符的区别) 2.三目运算符(a?b:c)的返回类型 通过隐式 阅读全文
posted @ 2020-01-10 19:20 认真做个普通人 阅读(670) 评论(0) 推荐(0) 编辑
摘要: 数组的访问方式 以下标的形式访问数组中的元素 以指针的形式访问数组中的元素 下标形式VS指针形式 指针以固定增量在数组中移动时,效率高于下标形式 指针增量为1且硬件具有硬件增量模型时,效率更高 下标形式与指针形式的转换 a[n]《=》*(a+n) 注意:现代编译器的生成代码优化率已大大提高,在固定增 阅读全文
posted @ 2020-01-10 19:11 认真做个普通人 阅读(106) 评论(0) 推荐(0) 编辑
摘要: 数组的本质 数组是一段连续的内存空间 数组的空间大小为sizeof(arrary_type)*arrary_size 数组名可看做指向数组第一个元素的常量指针 问题: a+1的意义是什么?结果是什么? 指针运算的意义是什么?结果又是什么? 1 #include <stdio.h> 2 int mai 阅读全文
posted @ 2020-01-10 19:08 认真做个普通人 阅读(234) 评论(0) 推荐(0) 编辑
摘要: 函数对象分析 1.客户需求: 编写一个函数,函数可以获得斐波那契数列每项的值,每调用一次返回一个值,函数可根据需要重复使用 1 // 斐波那契数列.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。 2 #include <iostream> 3 using namespace 阅读全文
posted @ 2020-01-10 18:18 认真做个普通人 阅读(173) 评论(0) 推荐(0) 编辑
摘要: 1.auto关键字 auto即C语言中的局部变量的默认属性 auto表明将被修饰的变量存储在栈中 编译器默认所有的局部变量都是auto的 2.register关键字 register关键字指明将局部变量存储于寄存器中 register只请求寄存器变量,但不一定成功 register变量的必须是CPU 阅读全文
posted @ 2020-01-10 18:05 认真做个普通人 阅读(292) 评论(0) 推荐(0) 编辑
摘要: 做HLW8032电能表项目中关于USART使用DMA接收定长数据的问题 1:由于HLW8032芯片一上电,芯片就会通过串口每隔50ms向STM32发送24字节的数据,且我不能通过STM32控制HLW8032发送数据,由于STM32初始化需要一段时间,所以当STM32接收数据时会出现丢包的情况。。 2 阅读全文
posted @ 2020-01-10 17:53 认真做个普通人 阅读(1168) 评论(0) 推荐(0) 编辑
摘要: 1.MAP文件基本概念 段(section):描述映像文件的代码和数据块 RO:Read-Only的缩写,包括RO-data(只读数据)和RO-code(代码) RW:Read-Write的缩写,主要是RW-data,RW-data由程序初始化初始值 ZI:Zero-initialized的缩写,主 阅读全文
posted @ 2020-01-10 17:49 认真做个普通人 阅读(10655) 评论(0) 推荐(2) 编辑
摘要: 引入话题: 生活中的对象都是被初始化后才上市的 生活中的对象被销毁前会做一些清理工作 问题:C++中如何清理需要销毁的对象 一般而言,需要销毁的对象都应该做清理 解决方案: 为每个类都提供一个public的free函数 对象不再需要时立即调用free函数进行清理 1 class Test 2 { 3 阅读全文
posted @ 2020-01-10 17:26 认真做个普通人 阅读(324) 评论(0) 推荐(0) 编辑
摘要: 问题:C++中的类可以定义多个对象,那么对象构造的顺序时怎么样的呢?? 对于局部对象,当程序执行流到达对象的定义语句时进行构造 对于堆对象 当程序执行流到达new语句时创建对象 使用new创建对象将自动触发构造函数的调用 对于全局对象 对象的构造顺序是不确定的 不同的编译器使用不同的规则确定构造顺序 阅读全文
posted @ 2020-01-10 17:21 认真做个普通人 阅读(387) 评论(0) 推荐(0) 编辑
摘要: 1.常量与宏回顾 C++中的const常量可以替代宏参数定义,如:const int A = 3; <--> #define A 3 问题:C++中有解决方案替代宏代码片段吗? 2.内联函数 C++中推荐使用内联函数替代宏代码片段 C++中使用inline关键字声明内联函数 内联函数声明时inlin 阅读全文
posted @ 2020-01-10 17:17 认真做个普通人 阅读(163) 评论(0) 推荐(0) 编辑
摘要: 成员变量的回顾 通过对象名能够访问public成员变量 每个对象的成员变量都是专属的 成员变量不能在对象之间共享 新的需求: 统计在程序运行期间某个类的对象数目 保证程序的安全性(不能使用全局变量) 随时可以获取当前对象的数目 以下程序不满足要求,因为每个对象的成员变量都是专属的。 在C++中可以定 阅读全文
posted @ 2020-01-10 16:30 认真做个普通人 阅读(1204) 评论(0) 推荐(0) 编辑
摘要: 请看程序: 1 #include <stdio.h> 2 class Complex 3 { 4 int a; 5 int b; 6 public: 7 Complex(int a,int b) 8 { 9 this->a = a; 10 this->b = b 11 } 12 friend Com 阅读全文
posted @ 2020-01-10 15:03 认真做个普通人 阅读(266) 评论(0) 推荐(0) 编辑
摘要: 数组是相同类型变量的有序集合,例如:int a[5]; a代表数组第一个元素的起始地址 有5个int类型的数据,且是5个连续的内存空间。 这个20个字节的空间的名字叫a,a[0],a[1]都是数组中的元素,数组中的元素没有名字 数组的大小 数组在一片连续的内存空间中存储元素 数组元素的个数可以显式或 阅读全文
posted @ 2020-01-10 14:53 认真做个普通人 阅读(339) 评论(0) 推荐(0) 编辑