自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(11)
  • 收藏
  • 关注

原创 C++ --- 引用

指针我们之前了解过了,它也是一个变量,存的是地址,那引用是什么呢?什么是引用引用不是定义一个新的变量,而是给已经定义的变量重新起一个别名。定义的格式为: 类型 & 引用变量名 = 已定义过的变量名;引用的特点: 1.一个变量可取多个别名; 2.引用必须初始化; 3.引用只能在初始化的时候引用一次,之后不能改变,再引用其他的变量。普通引用void Te...

2018-08-22 11:44:27 264

原创 C/C++动态内存管理

C语言动态内存管理C语言使用malloc、calloc、realloc来进行动态内存的管理。 malloc仅仅开辟一块空间,calloc开辟空间的同时并把它初始化为0,而realloc可以进行动态内存的调整。前面博客中已经介绍了这三个函数,在此不再赘述。 浅谈malloc、calloc和realloc//C动态内存管理void Test(){ int *p1 = (int...

2018-08-20 20:42:53 212

原创 使用const、enum、inline代替宏

上面博客中我们主要区分了宏和函数的区别,了解了宏给我们带来方便的同时也有其自身的弊端。比如:下面这个例子:#define N 1024定义了一个常量,这时我们的程序运行时出错了,出错的地方刚好是我们定义的常量,这时编译器会抛出错误信息,提示1024有错,如果我们忘了1024表示什么?就会一直追踪1024去定位错误所在。 可是错误信息为什么是1024,而不是N呢?因为在预处理阶段,已经...

2018-08-20 00:16:29 412

原创 宏和函数的区别

先来看下面的这段代码:#include <stdio.h>#define Max(a,b) a * b == 8 ? a * b : bint max(int a,int b){ if(a * b == 8) { return a*b; } else { return b; }}int...

2018-08-19 21:43:15 1151

原创 string类的实现

class String{public: String(const char* str = "") :_size(strlen(str)) ,_capacity(_size) { _str = new char[_size+1]; strcpy(_str,str); } //swap(s1,s...

2018-08-19 12:38:08 157

原创 日期类的实现

 #include<iostream>using namespace std;class Date{public: //四个默认成员函数 // //构造函数 Date(int year = 2018,int month = 9,int day = 1) { _year = year; _month =...

2018-08-19 09:35:24 127

原创 浅谈malloc、calloc和realloc

malloc、calloc和realloc是动态内存开辟的函数,在了解他们之前先想一下为什么要动态内存开辟? 我们以前开辟内存时是通过下面这种方式:int val = 10; //在栈上开辟四个字节char arr[10] = {0};//在栈上开辟10个字节的连续空间这种方式是在栈上开辟内存,有以下特点: 1.开辟的空间是固定的; 2.数组在声明的时候,必须指定数组的长度,它...

2018-08-13 10:57:08 179

原创 string函数的实现

我们在学C语言的时候,用了很多的处理字符和字符串的库函数,今天我们就自己实现一下这些和字符串相关的库函数。1.求字符串的长度(strlen)字符串是以’\0’作为结束标志的,strlen函数返回的是在字符串中’\0’前面出现的字符个数(不包括’\0’)。 这里注意:strlen的返回值是size_t无符号的。 下面代码用三种方式实现了strlen://借助指针size_t m...

2018-08-08 00:40:16 424

原创 编译过程

一个源文件到可执行程序到底经历了哪几个过程? 它的编译链接过程分为四个步骤:预处理、编译、汇编、链接。1.预处理1)处理所有的#include预编译指令,将被包含的文件插入到预处理指令的位置。这个过程是递归的。 2)将所有的#define删除,并展开所有的宏定义。 3)处理所有的预处理指令,比如:#if、#denif、#ifdef、#else。 4)过滤掉所有的注释 “//” ...

2018-08-07 23:03:45 202

原创 结构体的内存对齐

首先,先来算一下,下面的这个例子,这些结构体的大小是多少呢?struct s4{ char c1; struct s3 a; double b;};struct s3{ double b; char c; int i;}s3,*p;struct s2{ char c1; char c2; int i;...

2018-08-02 00:12:08 178

原创 sizeof和&取地址

我们知道通过sizeof可以求得一个变量的大小,通过&符号可以取一个变量的地址,那当它们对一个变量或者数组操作时又有何不同呢?1. sizeof   首先,sizeof不是函数,而是一个表达式,可以求变量或者类型所占空间的大小.    1).变量      sizeof求变量的大小时可以不加(),如:sizeof a;但是求类型必须加(),sizeof(int) 。    ...

2018-08-01 23:27:03 1637 2

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除