
C/C++
文章平均质量分 58
one-77
https://www.cnblogs.com/xieqijiang/p/10949941.html
https://www.linuxprobe.com/linux-command-skill.html
展开
-
区分C++中同名函数的三种关系(重载、重定义、重写)
1.重载重载:就是同一作用域内被声明的几个具有不同参数列表(参数类型,个数,顺序不同)的同名函数,根据参数列表确定调用哪个函数,重载不关心函数返回类型。class A{public:void Swap(int *a,int *b);int Swap(long *a,long *b);void Swap(double *a,double *b);void Swap(char ...原创 2019-07-29 20:48:50 · 1757 阅读 · 0 评论 -
关于父函数调用子函数涉及的传指针和解引用出现的一些问题
指针作为c语言的重点不在于它本身有多少的难度而是理解的程度问题。以下是我对指针简单的理解。1.首先,要对指针有一个正确的认识:指针==地址先看这个例题,总结出几个常用的变量,常量:int main(){int a = 10;int b = 20;int *p = &a; //整型地址变量存放整型地址值*p = 1...原创 2018-04-08 14:48:53 · 486 阅读 · 0 评论 -
指针的加法
指针+1给定一个数组,数组指针+1可能表示为三种情况:1.加一个字节 :程序出错2.加整个数组:这个操作完全没意义。3.加一个单元格:一个单元格几个字节是根据定义的指针的类型来定的,例如char,指针加1就是一个字节,即一个单元格。总结:指针加法需要调整(加1单元格),调整的权重为指针去掉一个星号,然后求指针sizeof,例如 int*p; p+1为加4个字节=siz...原创 2018-04-08 15:37:20 · 1339 阅读 · 0 评论 -
C语言中关键字const 的用法
今天给大家讲一下C语言中关于关键字const的在各种语法的使用。const在C语言中算是一个比较新的描述符,我们称之为常量修饰符,意即其所修饰的对象为常量(immutable)。1:修饰局部变量例如:1. const int n=5;2. int const n=5;这两种写法是一样的,都是表示变量n的值不能被改变了,需要注意的是,用const修饰变量时,一定要给变脸初始...原创 2018-05-04 22:44:53 · 437 阅读 · 1 评论 -
浅谈C++中的类与封装性
类我们知道,在C语言中struct将所有成员都默认为public权限,这很不安全。因此C++引进了功能与struct相同但更安全的数据类型——类。说明: 1.类声明中的访问限定符没有先后次序,通常将private放在后面,将public放在前面,方便了解类的可访问接口。 2.同一个类中,访问限定符出现次数没有限制。 3.数据成员和成员函数都可以设置为pub...原创 2018-11-25 13:22:57 · 1121 阅读 · 1 评论 -
C++中的关键字new和delete
指针常与堆(heap)空间的分配有关。堆就是指一块内存区域,它允许程序在运行时以指针的方式从其中申请一定数量的存储单元(其他存储空间的分配是在编译时完成的),用于数据的处理。堆内存也称为动态内存。C语言的方法:1. #include <stdlib.h>2. int *p= (int *) malloc(sizeof(int));3 ....4....原创 2018-11-25 19:48:21 · 458 阅读 · 0 评论 -
C语言和C++中const的区别
1、 c语言中的const#include<stdio.h>void main(){ const int a = 10; //int arr[a] = { 0 }; 不能用a作为数组下标 ...原创 2018-12-04 20:29:55 · 572 阅读 · 0 评论 -
C++的初始化列表与常对象
一.初始化列表构造函数的初始化列表 ‘:’来指明成员的初始化方式构造函数内部都是赋值CLink(): a(20) //(int a = 20 初始化a){b = 30; //赋值}笔试题:以下这段代码 初始化列表中的执行顺序问题(1)Test (int a,int b):ma(a),mb(ma){}void Show (...原创 2018-12-05 17:30:43 · 508 阅读 · 0 评论 -
C++程序编译链接的详细过程
众所周知,我们写的程序需要可以成功运行,只要运行出来就是王道。那屏幕前的你知道我们的程序是具体怎样运行出来的吗?我想你应该不是你很清楚吧。接下来我给大家具体讲一下哦,小伙伴们赶紧收藏哦,小心以后又忘记了。找不到了。 我们的程序要运行起来呢,它需要四个步骤,即:预处理阶段→编译阶段→汇编阶段→链接阶段,最后生成我们所需要的可执行程序(Windows下是a.exe文...原创 2019-07-22 12:23:44 · 1105 阅读 · 0 评论 -
浅谈C++中的堆栈调用
一、在讲函数的堆栈调用之前,让我们先了解两个概念: 1.什么是栈以及栈的特点? 栈被定义为一个特殊的容器,用户可以将数据压入栈中,也可以将已经压栈的数据进行出栈;压栈操作使得栈增大,出栈使得栈减小;栈总是自下增长的,由高地址向低地址进行增长,栈顶指针由称为esp的寄存器进行定位,而栈底指针由称为ebp的寄存器进行定位(栈底指针不进行移动),压栈操作使得栈顶指针的地址减小...原创 2019-07-24 19:47:22 · 1050 阅读 · 0 评论 -
最详细的堆和栈的区别
这个问题,经常会被面试官问到,所以我总结了一下堆和栈的区别,我是从8个方面进行对其分析:1.管理方式:栈是由编译器进行管理的,而堆是由程序员自己对其管理的,使用比较方便,但是容易产生内存泄漏。2.生长方向:栈是由高地址向低地址方向生长,是一段连续的内存区域,而堆是由低地址向高地址方向生长,是一段不连续的内存区域,是由链表进行对其遍历的。3.空间大小:栈顶地址和栈的最大容量由系统预先规定...原创 2019-07-26 21:14:15 · 517 阅读 · 0 评论 -
deleete和delete[]的具体区别
在C++中呢,用new申请的内存空间,它的释放方式有 delete 和 delete[] 两种方式,那么这两种方式到底有什么区别呢?今天我们就谈一下:前几天呢,我在书上看见过这样的内容:delete 释放new分配的单个对象指针指向的内存delete[] 释放new分配的对象数组指针指向的内存对于这两句话的理解,我们来分析一下底下的代码,就知道了。int *p=new int [...原创 2019-07-27 23:04:46 · 1028 阅读 · 0 评论 -
最详细的new和malloc的区别
这个问题是面试官进场问及到的。今天我就来给大家总结一下他们的区别。1.申请的内存所在位置:new操作符是从自由存储区为对象动态的分配内存空间,而malloc函数是在堆上动态分配内存。2.返回类型的安全性:new操作符内存分配成功时,返回的是对象类型的指针,类型严格与对象所匹配,不需要进行类型转化,所以new是符合类型安全性的操作符,而malloc内存进行分配是成功则返回void*,需要通过...原创 2019-07-27 23:07:09 · 268 阅读 · 0 评论 -
浅谈C++中的class与struct的区别
在这两年的面试题中,这个问题经常会被面试官问:今天就来简单的谈一下:C++中的class与struct的区别:struct是一个值类型,而class是一个对象类型; struct的默认访问权限为public,而class的默认访问权限为private; struct是没有继承的,也没有封装,要说封装只有初步封装。而class可以把数据、接口以三种类型(public、private、pr...原创 2019-07-28 15:00:34 · 478 阅读 · 0 评论 -
详谈C++中的引用和指针的区别
先来谈一下C++中的引用:在C++中,引用就是引入了一个对象的一个同义词。定义引用的表示方法与定义指针相似,只是用&代替了*。引用是c++对c语言的重要扩充。引用就是某一变量(目标)的一个别名而已,对引用的操作与对变量直接操作完全一样。其格式为:类型 &引用变量名 = 已定义过的变量名。引用的特点:①一个变量可取多个别名。②引用必须初始化。③引用只能在初始化的时...原创 2019-07-28 16:33:34 · 144 阅读 · 0 评论 -
C++中的inline函数、static函数、宏和普通函数的详细区别
首先先看一下什么是inline函数?inline (内联函数):是在函数调用点将函数代码进行展开。其实吧,这里的展开就是给编译器的一个建议,建议编译器将内联函数展开,具体会不会展开,还是要看编译器的处理,比如说如果我们在内联函数中出现了递归的使用,这样的话,编译器就不会进行将它展开,因为编译器只是进行词法,语法,语义分析,并不知道程序在运行的时候会进行递归多少层。在编译期间,复制代码到函...原创 2019-07-29 19:36:11 · 934 阅读 · 0 评论 -
C语言中的#和##表示的意义
前两天看到另外这么一道面试题:C语言中的#和##是用来干什么的?通过查资料今天给大家说一下:首先,我们平常在C语言中写的‘#’就是将其后面的宏参数变成一个字符串,而‘##’是将两个宏参数粘合在一起。具体使用看下面:#include <iostream>#include <stdio.h>using namespace std; #define Fin(...原创 2019-08-13 00:35:45 · 5049 阅读 · 0 评论