![](https://img-blog.csdnimg.cn/20190918140158853.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
C/C++知识
文章平均质量分 57
C/C++知识
Hello,小高同学
Hello,小高同学,一名耐心的码农
展开
-
增加、删除、修改、查询注册表
注册表原创 2024-05-17 19:59:54 · 1017 阅读 · 0 评论 -
C++三大特性及应用
封装、继承、多态原创 2024-04-30 20:00:00 · 1257 阅读 · 0 评论 -
C++构造函数为什么不能是虚函数
C++构造函数为什么不能是虚函数,面试题原创 2024-02-28 11:56:09 · 348 阅读 · 0 评论 -
strlen函数与sizeof的区别,C语言strlen与sizeof的区别详解
对于 strlen 和 sizeof,相信不少程序员会混淆其功能。虽然从表面上看它们都可以求字符串的长度,但二者却存在着许多不同之处及本质区别。strlen 是一个函数,它用来计算指定字符串 str 的长度,但不包括结束字符(即 null 字符)。strlen所作的仅仅是一个计数器的工作,它从内存的某个位置(可以是字符串开头,中间某个位置,甚至是某个不确定的内存区域)开始扫描,直到碰到第一个字符...转载 2018-12-28 16:19:53 · 264 阅读 · 0 评论 -
字符数组和字符串的区别,C语言字符数组和字符串区别详解
C 语言中并不存在字符串这个数据类型,而是使用字符数组来保存字符串。那么,字符数组就一定是字符串吗?对于这个问题,大多教科书中的回答是“是”。其实不然,字符数组和字符串是完全不相同的两个概念,千万不要混淆。分析如下所示的示例代码。#include <stdio.h>#include <string.h>int main(void){ /*字符数组赋初值...转载 2018-12-28 16:15:59 · 21495 阅读 · 11 评论 -
C语言中的void和void指针-void*,及void指针做函数参数。
实例:#include <stdio.h>#include <stdlib.h>void print(void * node){ printf("%d\n", *(int *)node); //加星号报错,不加不报错,但是结果不对。 //必须要转换成相应类型才能对其...原创 2019-06-04 19:01:42 · 11829 阅读 · 0 评论 -
C/c++中常用的数学函数
C语言中,数学函数是函数的一种。指专门进行数学运算的函数,一般都在<math.h>头文件下。头文件定义为#include<math.h>即可。c++则用#include<math.h>数学函数列表:1)int abs(int i); 求整数的绝对值。2)long labs(long n); 求长整型数的绝对值。3)double fabs(double x)...原创 2018-12-28 15:39:20 · 2859 阅读 · 0 评论 -
二进制、八进制、十进制、十六进制之间的转换
目录 1.十进制转2进制 2.二进制转十进制 ...原创 2018-12-28 23:55:23 · 55823 阅读 · 15 评论 -
几种常用的字符串处理函数
1.puts函数(字符串输出函数)一般形式:puts(字符数组)作用:输出一个字符串(以‘\0’结束的字符序列)。2.gets函数(字符串输入函数)一般形式:gets(字符数组)作用:从终端输入一个字符串到字符数组函数。#include <stdio.h>int main(){ char s[100]; gets(s); puts(s)...原创 2018-12-28 16:12:02 · 1577 阅读 · 0 评论 -
数据类型long long ,unsigned long long
相比于C++98标准,C++11整型的最大改变就是多了long long。但事实上,long long整型本来就离C++标准很近,早在1995年,long long就被提议写入C++98标准,却被C++标准委员会拒绝了。而后来,long long类型却进入了C99标准,而且也事实上也被很多编译器支持。于是辗转地,C++标准委员会又掉头决定将long long纳入C++11标准。long lo...转载 2019-08-02 16:58:09 · 29172 阅读 · 0 评论 -
数组之间不能直接赋值,为什么?赋值有四种方法
数组和数组之间能直接赋值吗?——不能你难道是想 a=b??首先你要明白:数组名a,b代表指针常量,所以说赋值号左边必须是一个变量a=b;根本就是错误的注意:数组名是常量,指针一般都是变量,当然也可以是常量。查看:https://blog.csdn.net/cyj2014go/article/details/78203404法一:当然你的想法也有可取之处,取地址运算,把数...原创 2019-03-14 22:38:40 · 31229 阅读 · 1 评论 -
strcpy()、memcpy()、memmove()源码、源码优化及异同
一、strcpy(char* dest, const char* src),只能拷贝字符串数据类型。源代码或优化代码://strcpychar* Strcpy(char* dest, const char* src){ char * address = dest; //需要这句,因为直接返回dest,地址不是首地址 assert((src != NULL) &...原创 2019-05-28 17:24:45 · 543 阅读 · 0 评论 -
vs2017---vs2010 如何编译和使用libcurl库
https://blog.csdn.net/DaSo_CSDN/article/details/77587916https://blog.csdn.net/cym1990/article/details/79851039转载 2021-11-19 14:42:47 · 297 阅读 · 0 评论 -
QT中QString与string的转化,解决中文乱码问题
QString str2qstr(const string str) { return QString::fromLocal8Bit(str.data()); } string qstr2str(const QString qstr) { QByteArray cdata = qstr.toLocal8Bit(); return string(cdata); } 在需要使用中文QString时,先用string写一个,然后转过去就可以啦.转载 2021-05-13 11:55:46 · 780 阅读 · 0 评论 -
VS2017动态链接库(.dll)的生成与使用(转)
https://blog.csdn.net/m0_37170593/article/details/76445972转载 2021-04-27 14:03:35 · 334 阅读 · 0 评论 -
C++ map的基本用法
#include <iostream>#include <map>#include <string>using namespace std;void mapping(map<string,int> m){ for(map<string,int>::iterator iter = m.begin();iter!=m.en...原创 2019-03-21 21:30:32 · 806 阅读 · 0 评论 -
C++类型转换 static_cast 、 reinterpret_cast、dynamic_cast、const_cast
1)static_cast<>() 静态类型转换,编译的时c++编译器会做类型检查;基本类型能转换 但是不能转换指针类型 2)若不同类型之间,进行强制类型转换,用reinterpret_cast<>() 进行重新解释 3)一般性结论:C语言中 能隐式类型转换的,在c++中可用 static_cast<...原创 2019-05-14 20:21:15 · 494 阅读 · 0 评论 -
C++中cin的详细用法
链接:https://blog.csdn.net/bravedence/article/details/77282039我看过的,比较好,留着以后复习之用cin相关函数(必须要会) cin.get() //一次只能读取一个字符 cin.get(一个参数) //读一个字符 cin.get(三个参数) //可以读字符串...转载 2019-05-17 09:21:55 · 887 阅读 · 0 评论 -
函数对象、谓词、回调函数、函数指针
函数对象: 重载函数调用操作符的类,其对象常称为函数对象(function object),即它们是行为类似函数的对象。一个类对象,表现出一个函数的特征,就是通过“对象名+(参数列表)”的方式使用一个类对象,如果没有上下文,完全可以把它看作一个函数对待。这是通过重载类的operator()来实现的。“在标准库中,函数对象被广泛地使用以获得弹性”,标准库中的很多算法都可以使用函数对象或者...原创 2019-05-26 23:17:05 · 423 阅读 · 0 评论 -
位运算的五个实例
一、交换不允许你使用额外的辅助变量来完成交换我们知道,两个相同的数异或之后结果会等于 0,即 n ^ n = 0。并且任何数与 0 异或等于它本身,即 n ^ 0 = n。所以,解释如下:把(1)中的 x 带入 (2)中的 x,有y = x^y = (x^y)^y = x^(y^y) = x^0 = x。 x 的值成功赋给了 y。对于(3),推导如下:x = x^y = (...原创 2019-06-12 15:57:09 · 1468 阅读 · 0 评论 -
一级指针、二级指针做函数参数的深入剖析
在讲述内容之前,先讲四点重要知识1.当传入参数时,函数形参会立即申请形参的内存空间,函数执行完毕后,形参的内存空间立即释放掉。1.指针是存放其他变量地址的变量。指针有自己的内存空间,内存空间存放的是其他变量的地址。2.指针具体指向谁,要看指针内存空间存放的地址。存放谁的地址就指向谁。3.函数参数传参本质:实参传给形参,都是拷贝.指针做函数参数的本质剖析,讲述四种情况一、传变...原创 2019-06-06 18:05:55 · 1794 阅读 · 0 评论 -
面试题——二级指针
请问下列程序存在什么问题#define _CRT_SECURE_NO_WARNINGS#include <iostream>using namespace std;#include <cstring>void GetMemory(char *p){ p = (char *)malloc(sizeof(100));}void main(){...原创 2019-06-06 10:14:18 · 709 阅读 · 0 评论 -
1009 说反话 ——getline的使用,附上读取字符串cin、get、getline等函数的使用
给定一句英语,要求你编写程序,将句中所有单词的顺序颠倒输出。输入格式:测试输入包含一个测试用例,在一行内给出总长度不超过 80 的字符串。字符串由若干单词和若干空格组成,其中单词是由英文字母(大小写有区分)组成的字符串,单词之间用 1 个空格分开,输入保证句子末尾没有多余的空格。输出格式:每个测试用例的输出占一行,输出倒序后的句子。输入样例:Hello World Her...原创 2019-08-07 23:24:42 · 321 阅读 · 0 评论 -
C/C++文件拷贝代码实现
C语言#define _CRT_SECURE_NO_WARNINGS#include <stdio.h>bool copyfile(const char *filename, const char * fileout);int main(){ char filename[256]; char fileout[256]; printf("请输入读取的...原创 2019-08-05 20:12:19 · 4009 阅读 · 0 评论 -
编写函数的注意事项
一个函数不应该依靠其它地方来保证参数的正确性,这个函数就是一个完整的功能因为你的函数可能会被其它地方调用,别人给你的参数可能形式多样,所以不管功能,函数都应该对参数进行限定...原创 2019-08-06 17:56:17 · 473 阅读 · 0 评论 -
a和&a、a+1和&a+1、sizeof(a)和sizeof(&a)的理解
一、a和&a的理解C/C++里面的数组名字会退化为指针,所以数组名a实际指的是数组的第一个元素的地址。而数组名作为指针来讲有特殊性,它正在它所指向的内存区域中,&a的值和a的数值是相同的(可以输出观察一下),但是类型和意义不同。而指针的加法操作和指向的数据类型密切相关。比如:int a[10]; a就相当于int *,如果是对它加1(a + 1)是相当于a + 1 * si...原创 2019-05-07 11:06:44 · 2182 阅读 · 0 评论 -
关于友元函数在模板类中使用出现的问题的解决办法及模板的机制
模板两大难点:一、写在用一个文件,但不放在类中1.友元函数写在类中template <typename T>class Complex{ friend ostream& operator << (ostream& out, Complex &c) { out << c.a << ...原创 2019-05-13 18:09:12 · 759 阅读 · 0 评论 -
private、public、protected
第一: private,public,protected的访问范围:private: 只能由该类中的函数、其友元函数访问,不能被任何其他访问,该类的对象也不能访问.protected: 可以被该类中的函数、子类的函数、以及其友元函数访问,但不能被该类的对象访问public: 可以被该类中的函数、子类的函数、其友元函数访问,也可以由该类的对象访问注:友元函数包括两种:设为友元的全局...转载 2019-04-29 22:26:53 · 4911 阅读 · 1 评论 -
有关形参(值传递,指针传递,引用传递)
#include <iostream>using namespace std;void swap1(int,int);void swap2(int *,int *);void swap3(int &,int &);void show();int main(){ int num1,num2; cin>>num1>>nu...原创 2019-04-08 23:33:20 · 830 阅读 · 0 评论 -
函数指针的用法
#include <iostream>using namespace std;double multiplication(double,double);double division(double,double);double addition(double,double);double subtraction(double,double);void show(doubl...原创 2019-04-08 23:16:50 · 160 阅读 · 0 评论 -
排列组合,n个元素中选m个元素进行排列组合,组合算法和排列算法综合,c++实现
知识储备1.排列排列的定义:从n个不同元素中,任取m(m≤n,m与n均为自然数,下同)个元素按照一定的顺序排成一列,叫做从n个不同元素中取出m个元素的一个排列;从n个不同元素中取出m(m≤n)个元素的所有排列的个数,叫做从n个不同元素中取出m个元素的排列数,用符号 A(n,m)表示计算公式:注意:m中取n个数,按照一定顺序排列出...原创 2019-03-24 00:22:59 · 10177 阅读 · 0 评论 -
排列组合 全排列 递归法 c++实现
知识储备1.排列排列的定义:从n个不同元素中,任取m(m≤n,m与n均为自然数,下同)个元素按照一定的顺序排成一列,叫做从n个不同元素中取出m个元素的一个排列;从n个不同元素中取出m(m≤n)个元素的所有排列的个数,叫做从n个不同元素中取出m个元素的排列数,用符号 A(n,m)表示计算公式:注意:m中取n个数,按照一定顺序排列出...原创 2019-03-23 23:30:42 · 4132 阅读 · 0 评论 -
排列组合n选m,组合算法——0-1转换算法(巧妙算法)C++实现
知识储备1.排列 排列的定义:从n个不同元素中,任取m(m≤n,m与n均为自然数,下同)个元素按照一定的顺序排成一列,叫做从n个不同元素中取出m个元素的一个排列;从n个不同元素中取出m(m≤n)个元素的所有排列的个数,叫做从n个不同元素中取出m个元素的排列数,用符号 A(n,m)表示 计算公式:注意:m中取n个数,按照一定顺序排列出...原创 2019-03-23 22:07:03 · 4929 阅读 · 0 评论 -
C++五大常用容器的特性及用途
C++ STL中最基本以及最常用的类或容器无非就是以下几个:string vector set list map在我的博客中依次介绍了它们,并给出一些最常见的最实用的使用方法,做到快速入门。这里,先介绍我学习他们的一些想法以上五类常用容器,用法大致相同,当然也有略微不同,因此在学习他们时,要对照相似点,区别不同点,这样就能够快速入门。我是小白,以下仅是粗浅看法,说的不对...原创 2019-03-21 21:39:42 · 3096 阅读 · 0 评论 -
程序的内存分配
原创 2019-03-17 20:39:13 · 148 阅读 · 0 评论 -
vector巧妙赋值,作为函数参数,如何修改值
#include <iostream>#include <vector>#include <string>using namespace std;template <typename T>void Showlist(vector<T> v){ for(typename vector<T>::iterato...原创 2019-03-21 00:20:42 · 3279 阅读 · 0 评论 -
c++中list的基本用法
#include <iostream>#include <list>#include <string>using namespace std;template <typename T>void Showlist(list<T> v){ for(typename list<T>::iterator it =...原创 2019-03-21 00:15:34 · 2296 阅读 · 0 评论 -
set基本用法
set跟vector差不多,它跟vector的唯一区别就是,set里面的元素是有序的且唯一的,只要你往set里添加元素,它就会自动排序,而且,如果你添加的元素set里面本来就存在,那么这次添加操作就不执行。要想用set先加个头文件set。在c98中,set不能直接赋值,而需要一个一个插入进去( insert() )。但是有种巧妙赋值#include<iostream>#i...原创 2019-03-20 21:37:25 · 1799 阅读 · 0 评论 -
vector的基本用法
vector初始化vector的遍历收藏于各博客,以备自己学习转载 2019-03-20 21:01:40 · 197 阅读 · 0 评论 -
c++容器vector的基础概念
原创 2019-03-16 23:16:59 · 225 阅读 · 0 评论