C/C++
C、C++开发常见问题及经验分享
优惠券已抵扣
余额抵扣
还需支付
¥49.90
¥99.00
购买须知?
本专栏为图文内容,最终完结不会低于15篇文章。
订阅专栏,享有专栏所有文章阅读权限。
本专栏为虚拟商品,基于网络商品和虚拟商品的性质和特征,专栏一经购买无正当理由不予退款,不支持升级,敬请谅解。
只管码
有些东西,当你懂了,并没有想象中的那么难
展开
-
C/C++教程-一个物体、动物在程序中该如何表达
如果您在程序中遇到问题,可以私信我或者留言,我们一同探讨和学习原创 2023-04-23 06:00:00 · 678 阅读 · 0 评论 -
上型转换和下型转换
dog是父类型,所以只能看到父类的属性和方法,dog1是子类型,是父类型强制转换的子类型,所以可以看到子类的属性和方法。dog1的转换就是父类引用转换成子类的引用,从继承树的角度讲就是下型转换。dog1是一个基类对象的引用,只能使用父类的方法,虽然实例化的还是子类,但是自身特有的方法会丢失。这种下行转换是不安全的,因当有个cat类,它的父类也是animal的时候就有可能转换错误。行转换,存在继承关系,则转换成功,若不存在继承关系,则转换失败,返回空指针。这种情况,强转就无法判断转换的是否正确。原创 2023-04-22 16:41:06 · 160 阅读 · 0 评论 -
[C/C++]new创建和delete释放对象数组
对象数组的创建和释放原创 2022-07-04 22:07:26 · 866 阅读 · 0 评论 -
[C++] 动态内存-malloc/free和new/delete
主要记录一下malloc/free和new/delete之间的差异及使用时需要注意的地方原创 2022-07-01 16:03:10 · 307 阅读 · 0 评论 -
[C++]成员函数重载、覆盖和隐藏
类之间的成员函数关系有重载、覆盖、隐藏;原创 2022-06-08 00:00:00 · 97 阅读 · 0 评论 -
二分法查找容器中存在相同元素方法
二分法查找是一个简单高效的查找方法,对于已经排好序列的容器,通过二分法查找相同元素的过程中我们会遇到容器中存在相同的元素如何处理?本文的思想就是当你通过二分法查找到想要找的元素后,通过该元素的索引"Index"遍历容器中Index + n 和Index - n的元素对比与当前要查找的值是否相同,然后找到容器中有多少相同元素;废话不多少,直接上程序#include "stdafx.h"#in...原创 2019-12-17 15:08:53 · 607 阅读 · 0 评论 -
笔记:显式转换和隐式转换
要谈显式转换和隐式转换,那么先来看看类型转换的定义:类型转换:即把数据从一种类型转换成另外一种类型;PS:在操作系统中,数据都是一系列的位;隐式转换:不需要做任何工作,也不需要另外编写代码,即可完成隐式转换;任何类型A,只要其取值范围在类型B的范围内,类型A的数据就可以隐式转换为类型B,可以理解为“小范围的数据类型”可以隐式转换为“大范围的数据类型”;这么做的原因,主要是因为,如果把数据放在变量中,而该数据超出了变量的取值范围,则肯定会出问题,所以隐式转换保证了数据在转换前后,“位”上的数据不会原创 2020-08-22 16:24:15 · 429 阅读 · 0 评论 -
sizeof和strlen使用的区别
首先看下sizeof()和strlen()计算一个有内容数组的长度;int main(int argc, _TCHAR* argv[]){ int iSize = 0; // sizeof计算的大小; int ilength = 0; // strlen的大小; char acTest[16] = "abcdef"; iSize = sizeof(acTest); ilength = strlen(acTest); printf("iSize = %d\n", iSize); prin原创 2021-03-20 15:41:37 · 137 阅读 · 0 评论 -
比较double和float数值是否相等
在项目中,经常会遇到,比较double和float数值是否相等?正常情况下,我们会直接判断两个变量是否相等,比如“A==B”但是当A和B中是double和float数值时候,该方式不可取;比如:以下代码提供一个接口bisSameVal,比较double和float两个数值是否相等;当我们定义个double和float数值并且赋值233.23时,bisSameVal结果返回的是false;#include "stdafx.h"#include <stdio.h>bool原创 2022-04-30 07:00:00 · 901 阅读 · 0 评论 -
C语言——计算当前日期前/后N天的日期
{ int CalcType = 1; // 0:一周前;1:一个月前;2:三个月前;3:半年前(六个月前); int daytime = 5; int year = 2021; int month = 7; int data = 31; int iRet = -1; int leapyear = 0; int sum = 0; static int month_d...原创 2021-02-28 11:38:12 · 3202 阅读 · 0 评论 -
C++笔记——关键字
C++关键字:and*用法:*等同于 && 的作用and_eq*用法:*等同于 &= 的作用asm*用法:*声明内联汇编块(暂时不明白怎么使用)auto用法:1.自动存储期说明符(C++ 11 前)(暂时不明白怎么使用)2.带尾随返回类型的函数声明 (C++ 11 起)(暂时不明白怎么使用)3.结构化绑定声明(C++ 17 起)(暂时不明白怎么使用)......原创 2021-03-09 22:41:58 · 65 阅读 · 0 评论 -
strftime()函数
C 库函数 :size_t strftime(char *str, size_t maxsize, const char *format, const struct tm *timeptr)根据format中定义的格式化规则,格式化结构timeptr表示的时间,并把它存储在str中。参数说明:str-- 存储产生的结果。 maxsize-- 结果可存储的最大size。 format-- 这是 C 字符串,包含了普通字符和特殊格式说明符的任何组合。这些格式说明符由函数替换为...原创 2021-07-09 09:50:50 · 1383 阅读 · 0 评论 -
strncasecmp函数
头文件:#include <string.h>定义函数:int strncasecmp(const char *str1, const char *str2, size_t n);函数说明:strncasecmp()用来比较参数str1 和str2 字符串前n个字符, 注意:比较时会自动忽略大小写的差异。返回值: (1)若参数str1 和str2 字符串相同则返回0; (2)str1 若大于str2 则返回大于0 的值;...原创 2021-07-08 13:15:57 · 8994 阅读 · 0 评论 -
C语言:##、#@、#特殊用法
#define COMBINESTR(x,y) x##yint main (){ int n = COMBINESTR(123,456); printf("n = %d\n", n); char* pStr = COMBINESTR("abc","def"); printf("pStr = %s\n", pStr); return 0;}原创 2021-08-02 11:22:50 · 6037 阅读 · 0 评论 -
判断两个坐标点是否是同一个点
适合比较横坐标和纵坐标都是浮点类型的point;#include "stdafx.h"#include <stdio.h>#include <math.h>typedef struct point{ float x; float y;};bool pointIsEquation(point* A, point* B){ float x = A->x - B->x; float y = A->y - B->y; float val原创 2022-04-26 14:06:17 · 894 阅读 · 0 评论 -
枚举类型的定义
定义一个名为“eTest”的枚举类型typedef enum eTest{ eTest_Fir= 0, eTest_Sec= 1, eTest_Thr= 2 };注意:1.枚举可以对枚举类型中的元素进行赋值;2.如未设定数值,默认是从0开始计数,依次加1;3.枚举类型中的元素不能出现相同名称的元素;...原创 2021-12-23 15:11:42 · 729 阅读 · 0 评论 -
[C/C++] “”和<>引用头文件的区别
头文件引用<>和“”的区别;原创 2022-05-31 10:37:31 · 706 阅读 · 0 评论 -
sscanf函数
C 库函数int sscanf(const char *str, const char *format, ...)从字符串读取格式化输入.函数返回转换成功的个数;用法直接贴代码;一般用法:int main(){ // 一般用法: char buf[64] = {0}; sscanf("abcdefg ", "%s", buf); printf("%s\n", buf); // 输出 abcdefg return(0);}按长度截取字符串:注...原创 2021-05-27 23:08:51 · 130 阅读 · 0 评论 -
范数归一化,附代码
范数归一化程序示例:以三维坐标为例float get_square_norm(float x, float y, float z){ return (x * x + y * y + z * z);}float inv_sqrt( float val ) { float half = 0.5f * val; long i = *(long*)&val; i = 0x5F3759DF - ( i >> 1 ); val = *(float*)&原创 2022-04-21 06:30:00 · 246 阅读 · 0 评论 -
C、C++ 判断两个矩形框是否相交
判断两个矩形框是否存在交集,就是判断两个矩形框是否相交;我们先上代码,再讲判断逻辑;代码首先定义一个点的结构体,再定义矩形框结构体; typedef struct { long x; long y; }Point_t; typedef struct { Point_t PostionA; Point_t PostionB; }Rect_t;我们定义一个矩形框可以有2种形式,第一种:矩形框的左下坐标和右上坐标;第二种:矩形框的左下坐标和矩形框的.原创 2021-12-23 16:54:20 · 2166 阅读 · 0 评论 -
循环嵌套问题:为什么大循环在内,小循环在外可以提高程序的运行效率
大循环和小循环发生嵌套的时候,到底是大循环在外还是小循环在外?原创 2022-05-31 18:00:00 · 3689 阅读 · 0 评论 -
C语言教程-变量和类型
变量生活中我们会将物品放在柜子或者箱子中,方便我们日后使用的时候可以找到;这些箱子或者柜子就是我们常说的“变量”;在计算机中,我们声明变量,就是要给存储的数据申请一定的空间,告诉计算机,我们要使用内存空间存储数据;C语言基本类型我们之前说到,我们生活中的柜子或者箱子就是变量,那么类型就是我们告诉系统,我们的变量是什么类型的,计算机给我们分配一定的空间,存储变量中的数据;而变量名称,就是我们给这部分内存贴了一个便签。以后我们通过这个便签,我们就是得到内存的中数据;例如:int a = 90;原创 2021-12-31 15:43:42 · 211 阅读 · 0 评论