- 博客(192)
- 资源 (7)
- 收藏
- 关注
转载 C++ append
append函数是向string的后面追加字符或字符串。头文件是<string>.1).向string的后面加C-stringstring s = “hello “; const char *c = “out here “;s.append(c); // 把c类型字符串s连接到当前字符串结尾s = “hello out here”;2).向string的后面加C-string的一部分string s=”hello “;const char *c = “out here “;s.
2021-09-02 10:02:55 1764
转载 c/c++中new与malloc的解法
1.我们先来讲述一下new和delete? 在C++中new/delete是开辟/释放内存的,那他们与C语言中的malloc/free有什么区别呢?(1)new的底层是通过malloc来开辟内存的,但new比malloc多一项功能,那功能就是开辟完内存还要进行初始化操作。 比如:new的基本操作为:int *p=new int(10);10代表堆上开辟的整型内存的初始值;Test *p=new Tset();这个操 作不仅会在堆上开辟Test类...
2021-07-27 11:40:18 1000
转载 C++动态分配(new和malloc的用法及区别)
参考:https://blog.csdn.net/zhong29/article/details/80930919https://blog.csdn.net/nyist_zxp/article/details/80810742一、malloc和free1、函数声明:void *malloc(int size);说明:malloc向系统申请分配size字节的内存空间,返回类型为void*类型;2、使用int* p;p = (int*)malloc(sizeof(int));free(
2021-07-27 11:21:30 397
原创 链表做的简易手机销售系统
#include <stdio.h>#include <stdlib.h>#include <string.h>typedef struct phone{ int number; char name[30]; int price; int num; struct phone *next;} myphone;myphone *head,*p,*p1,*p2;int n =0;void myadd(){ p1...
2021-07-14 22:04:29 189 1
原创 C链栈删除数据
#include <stdio.h>#include <stdlib.h>typedef struct mylinkstack{ char mych; struct mylinkstack *next;} myls;myls *mypush(myls *myls2,char ch){ myls *line = (myls*)malloc(sizeof(myls)); line->mych = ch; line->nex...
2021-07-14 12:54:11 426
原创 C链表解释。。。
#include<stdio.h>#include<stdlib.h> typedef struct lnode{ int num; char data; struct lnode *next; } mynode; mynode *initmynode(){ mynode *p = NULL; mynode *temp = (mynode*)malloc(sizeof(myno...
2021-07-13 22:12:22 107
转载 visual studio的C/C++修饰名及调用约定(如__cdecl)
C/C++:函数的编译方式与调用约定以及extern “C”的使用函数在C++编译方式与C编译方式下的主要不同在于:由于C++引入了函数重载(overload),因此编译器对同名函数进行了名称重整(name mangle)。因此,在C++中引用其他C函数库时,需要对声明使用的函数做适当的处理,以告知编译器做出适应的名称处理。函数的调用约定涉及了函数参数的入栈顺序、清栈主体(负责清理栈的...
2019-08-15 20:18:51 775
转载 c++,__stdcall和__cdecl调用
版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。本文链接:https://blog.csdn.net/q139861200/article/details/78202302 调用协议常用场合 __stdcall:Windows API默认的函数调用协议。 __cdecl:C/C++默认的函数调用协议...
2019-08-15 20:17:35 421
转载 vs里 .sln .suo .ncb等后缀名详解
Visual Studio.NET采用两种文件类型(.sln和.suo)来存储特定于解决方案的设置,它们总称为解决方案文件。为解决方案资源管理器提供显示管理文件的图形接口所需的信息从而在每次继续开发任务时,不会因开发环境而分散精力; *.sln:(Visual Studio.Solution)通过为环境提供对项目、项目项和解决方案项在磁盘上位置的引用,可将它们组织到解决方案中。比...
2019-07-11 15:28:36 1743
原创 C++ 结构体
struct stuPosition{ double x; double y; stuPosition() { memset(this, 0, sizeof(stuPosition)); }};struct stuUserPosition:public stuPosition{ DWORD dwUserID; DWOR...
2019-07-04 09:44:02 123
原创 C++ 关于负数和无字符类型的整型 进行运算符相关处理的提醒
今天有个BUG很莫名其妙、平常很少关注、因为都是整型(以为在简单的运算时候会自动转)、所以进行 > 和 < 类型的运算时没太在意、结果就倒在这坑里了、故、写代码时、尽量用同类型参数进行运算...
2019-06-28 20:13:08 474
转载 SqlServer存储过程详解(转)
1.创建存储过程的基本语法模板:if (exists (select * from sys.objects where name = 'pro_name')) drop proc pro_namegocreate proc pro_name @param_name param_type [=default_value]asbegin sql语句e...
2019-06-24 11:16:22 1644
转载 转 《图说区块链》读书笔记(完整版)
书籍框架第一章 起源账本演变概述区块链最直接的词汇就是分布式账本,所以有必要从记账角度探寻其诞生的意义。书中按照时间顺序梳理了账本的历史演变过程:旧石器时代->死记硬背和心算有生产者剩余后->简单刻画和直观绘图刻画跟不上需求后->结绳记事,账本起源原始社会末期->文字流水账公元前五世纪->单式记账法十二世纪左右->复式...
2019-04-10 09:25:42 453
转载 C/C++中常出现的#ifndef,#define,#endif解析
想必很多人都看过“头文件中的 #ifndef/#define/#endif 防止该头文件被重复引用”。但是是否能理解“被重复引用”是什么意思?是不能在不同的两个文件中使用include来包含这个头文件吗?如果头文件被重复引用了,会产生什么后果?是不是所有的头文件中都要加入#ifndef/#define/#endif 这些代码? 其实“被重复引用”是指一个头文件在同一个cpp文件中被...
2018-12-09 18:02:21 407
转载 C++函数模板
节省程序员的精力了当然是。。。比如写一个排序算法。。。如果不用模板函数的话要像下边这样。对每种数据类型都要写一个函数。void sort(int data[],int n) ; //整型排序void sort(double data[],int n); //双精度型排序void sor(float data[] ,int n); //浮点型排序……而用模板,只需要写一个模板函数就可以了templa...
2018-12-09 10:08:17 669
原创 2012 VS代码检测工具
先下载安装Cppcheck再打开2012VS 工具---外部工具C:\Program Files (x86)\Cppcheck\cppcheck.exe--enable=all --quiet --verbose --template=vs $(SolutionDir)$(ItemDir)
2018-12-07 16:55:03 1441
转载 C++ sqrt()
math.h 数学函数库,一些数学计算的公式的具体实现是放在math.h里,具体有:1 三角函数double sin (double);double cos (double);double tan (double);2 反三角函数double asin (double); 结果介于[-PI/2, PI/2]double acos (double); 结果介于[0, PI]doubl...
2018-12-05 15:59:33 21724
转载 C++内联函数详解
1.函数调用原理"编译过程的最终产品是可执行程序--由一组机器语言指令组成。运行程序时,操作系统将这些指令载入计算机内存中,因此每条指令都有特定的内存地址。计算机随后将逐步执行这些指令。有时(如有循环和分支语句时),将跳过一些指令,向前或向后跳到特定地址。常规函数调用也使程序跳到另一个地址(函数的地址),并在函数结束时返回。下面更详细地介绍这一过程的典型实现。执行到函数调用指令时,程序将在函数...
2018-12-05 09:40:56 156
转载 C++中堆和栈的完全解析
C++中堆和栈的完全解析内存分配方面:堆: 操作系统有一个记录空闲内存地址的链表,当系统收到程序的申请时,会遍历该链表,寻找第一个空间大于所申请空间的堆结点,然后将该结点从空闲结点链表中删 除,并将该结点的空间分配给程序,另外,对于大多数系统,会在这块内存空间中的首地址处记录本次分配的大小,这样代码 中的delete语句才能正确的释放本内存空间。我们常说的内存泄露,最常见的就是堆泄露(还有...
2018-12-04 15:21:01 435
转载 C++中堆,栈,队列
C/C++内存分为五个部分:1、栈区(stack):存放函数的参数值,局部变量的值等(编译器自动分配释放 )。 2、堆区(heap): 注意:与数据结构中的堆完全不同,分配方式类似于链表(程序员分配释放,若程序员不释放,程序结束时可能由OS回收 )。 3、全局区(静态区):全局变量和静态变量存储在一块,初始化的全局变量和静态变量在一块区域, 未初始化的全局变量和未初始化的静态变量在相邻的...
2018-12-04 15:02:12 158
转载 C++ vector和list的区别
1.vector数据结构vector和数组类似,拥有一段连续的内存空间,并且起始地址不变。因此能高效的进行随机存取,时间复杂度为o(1);但因为内存空间是连续的,所以在进行插入和删除操作时,会造成内存块的拷贝,时间复杂度为o(n)。另外,当数组中内存空间不够时,会重新申请一块内存空间并进行内存拷贝。2.list数据结构list是由双向链表实现的,因此内存空间是不连续的。只能通过指针...
2018-12-04 11:42:10 112
转载 C++中反正切atan2(y,x)与atan(x)
1、atan(x)表示求的是x的反正切,其返回值为[-pi/2,+pi/2]之间的一个数。2、atan2(y,x)求的是y/x的反正切,其返回值为[-pi,+pi]之间的一个数。atan2返回值解释:在三角函数中,两个参数的函数atan2是正切函数的一个变种。对于任意不同时等于0的实参数x和y,atan2(y,x)所表达的意思是坐标原点为起点,指向(y,x)的射线在坐标平面上与x轴正方...
2018-12-03 10:50:50 809 2
原创 C++ strcmp对比函数
#include <cstring>char word[5] = "?ate";for (char ch='a';strcmp(word,"mate");ch++){ cout<<word<<endl; word[0]=ch;}
2018-11-27 14:49:05 976
原创 C++ for循环一些独特demo
string word = "stresseds"; //cin>>word; char temp; int i,j; cout<<"word.size():"<<word.size()<<endl; for (j=0,i=word.size() -1;j<i;i--,j++) {
2018-11-27 11:20:45 330
转载 C++ STL中判断list为空,size()==0和empty()有什么区别
关于两个的区别,首先size()==0为bool表达式,empty()为函数调用,这一点很明显。查看源代码, bool empty() const { return _M_node->_M_next == _M_node; } size_type size() const { size_type __result = 0; dis...
2018-11-26 17:16:48 4130
转载 C++学习:list容器详解(一)
list容器详解 首先说说STL STL就是Standard Template Library,标准模板库。这可能是一个历史上最令人兴奋的工具的最无聊的术语。从根本上说,STL是一些“容器”的集合,这些“容器”有list,vector,set,map等,STL也是算法和其他一些组件的集合。这里的“容器”和算法的集合指的是世界上很多聪明人很多年的杰作。 ...
2018-11-26 17:16:12 196
原创 指针
double wages[3] = {10000.0,20000.0,30000.0}; short stacks[3] = {3,2,1}; double * pw = wages; short * ps = &stacks[0]; cout<<"PW="<<pw<<",*PW="<<*pw&am
2018-11-24 11:32:37 133
原创 C++ &
//int * pd = new int; //*pd =2; //int **a = &pd; //int ***b = &a; // //cout<<"第一层 "<<*pd<<endl; //cout<<"第一层 "<<**&
2018-11-22 17:38:06 837
转载 vbs
VBS是基于Visual Basic的脚本语言。VBS的全称是:Microsoft Visual Basic Script Edition。(微软公司可视化BASIC脚本版)。其语言类似Visual Basic(VB) Dim a,b,c a=inputbox("a是:","输入半径") b=Inputbox("b是:","输入半径") c=a*2...
2018-11-22 15:35:02 428
原创 C++ 指针
int * testTmp; testTmp = 0xB8000000; //编译不通过、数值不能直接赋值给指针 cout<<"*testTmp:"<<*testTmp<<endl; int * testTmp; testTmp = (int *)0xB8000000; //必须强转为...
2018-11-21 14:53:30 105
原创 C++ 指针重点
long updates = 6;long * fllowerEx;fllowerEx = &updates;*fllowerEx = 666; //必须给指针初始化为一个确定、适当的地址、不然不能进行赋值操作cout<<"*fllowerEx:"<<*fllowerEx<<endl;...
2018-11-21 14:45:02 164
转载 命名空间(解决了为什么使用using namespace std;的疑惑)
命名空间是用来组织和重用代码的编译单元。NameSpace(名字空间),是为了解决命名冲突的问题而引入的概念。通过使用 namespace xxx(就是xxx使用的范围),你所使用的库函数或变量就是在该名字空间中定义的,这样一来就不会引起不必要的冲突了。C++标准程序库中的所有标识符都被定义于一个名为std(standard)的namespace中。 一 :<iostream>和...
2018-11-10 16:29:33 7090
转载 vs中 main和_tmain的区别
用过C的人都知道每一个C的程序都会有一个main(),但有时看别人写的程序发现主函数不是int main(),而是int _tmain(),而且头文件也不是<iostream.h>而是<stdafx.h>,会困惑吧?一起来看看他们有什么关系吧 首先,这个_tmain()是为了支持unicode所使用的main一个别名而已,既然是别名,应该有宏定义过的,在哪里定义...
2018-11-10 11:48:42 342
转载 #include "stdafx.h"
"stdafx.h",名称的英文全称为:Standard Application Framework Extensions 所谓头文件预编译,就是把一个工程(Project)中使用的一些MFC标准头文件(如Windows.H、Afxwin.H)预先编译,以后该工程编译时,不再编译这部分头文件,仅仅使用预编译的结果。这样可以加快编译速度,节省时间。 使用方法: 使用预编译头文件需要首先指...
2018-11-10 10:44:51 153
转载 关于VisualC++的ATL、MFC、CLR对比
MFC、ATL和CLR是VC2005内置的3大库,涵盖了windows的各种开发方法和开发应用。当然关于C++开发的库不止这3个,不过这3个是微软推荐。从编程所处层次而言,WIN32为最底层,其次是MFC.然后是CLR. WIN32 winAPI MFC MFC类库 CLR .net库1. WIN32常规就是不用MFC,使用API函数编的程序。2. MFC库有很多年的历史了,MFC是基于W...
2018-11-10 10:14:58 3165
转载 路由表的原理和作用
路由器是一种典型的网络层设备。它在两个局域网之间按帧传输数据,在OSI/RM之中被称之为中介系统,完成网络层责在两个局域网的网络层间按帧传输数据,转发帧时需要改变帧中的地址。它在OSI/RM中的位置如图1所示。 一、原理与作用 路由器(Router)是用于连接多个逻辑上分开的网络,所谓逻辑网络是代表一个单独的网络或者一个子网。当数据从一个子网传输到另一个子网时,可通过路由...
2018-10-31 15:05:14 31921 1
转载 路由下一跳地址
简单说就是数据包进来后,路由器查看这个包的目的地址,然后根据自己的路由表转发到下个端口,这个端口就是下一跳的地址。路由器的功能是将数据包在不同网段间转发。路由器上一般带s口、e口,S口是连接不同路由器的端口,E口是路由器上带的端口,带几个E口就可以分几个网段。一个数据包过来后,路由器就要检查一下这个包是发到哪里去的,看它的目的地址。如果目的网段在本路由器内就直接转发,这时就直接送到相应的网口上去...
2018-10-31 14:12:26 12237 2
转载 TCP/IP协议各层数据格式及首部含义
TCP/IP四层模型原帖:http://www.cnblogs.com/BlueTzar/articles/811160.htmlTCP/IP参考模型 ISO制定的OSI参考模型的过于庞大、复杂招致了许多批评。与此对照,由技术人员自己开发的TCP/IP协议栈获得了更为广泛的应用。如图1所示,是TCP/IP参考模型和OSI参考模型的对比示意图。 2.1 TCP/IP参考模型的层...
2018-10-26 17:51:31 2470
转载 TCP报文格式详解
TCP报文是TCP层传输的数据单元,也叫报文段。1、端口号:用来标识同一台计算机的不同的应用进程。1)源端口:源端口和IP地址的作用是标识报文的返回地址。2)目的端口:端口指明接收方计算机上的应用程序接口。TCP报头中的源端口号和目的端口号同IP数据报中的源IP与目的IP唯一确定一条TCP连接。2、序号和确认号:是TCP可靠传输的关键部分。序号是本报文段发送的数据组的第一个...
2018-10-25 18:15:13 707
cppcheck-1.85-x86-Setup
2018-12-07
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人