C与C++申请堆内存的不同

C 没有关键字可以申请堆内存,只提供了一些库函数如malloc、calloc、realloc等。而C++提供了一个一系列新的关键字来处理堆内存,那就是new和delete,下面示例代码分别编写了C和C++各种申请内存的方式。 #if __cplusplus#include using namespace std...

值传参、指针传参、引用传参区别

在C中,我们只了解到有两种传参方式,一种是值传递,另外一种是传递指针,一般情况下我们选择使用指针传递参数。在C++中,又新增了一种传参方式,那就是引用(type &),引用传参给我们带来了更好的体验。那三者的具体区别在哪里呢? 1、值传递 值传递是一种值拷贝的操作,一般只用于传入参数使用,而且如果传入的...

实例化对象不同方式对应的实现

在实例化一个对象过程中,我们看见过很多种方法,比如string类中,可以使用string s1 = “good”,也可以使用 string s2(“good”) 等等,方法有很多,本文就罗列了一下几种实例化对象的方法,以及在类内部实现的过程。 第一种:实例化一个对象,只有名字,没有参数。(构造器) C...

this 指针的意义及作用

在构造一个对象时,默认会生成一个指向当前对象的指针,这个的目的就是为了带来方便,它就是this指针,举例几个常见this指针的用途。 第一种:若成员函数中传递进来的参数与成员变量名字相等,那么赋值时就会出现问题。如下: class CStudent{public:CStudent(string name, in...

extern \"C\" 关键字的作用

在 C 语言中, extern 关键字具有外延性,使修饰的变量作用域可以拓展到其他文件中。而在C++中,extren被重载后有了其他功能,就是修饰函数以什么方式进行编译。决定了在编译过程中是否对函数进行倾轧(Name Mangling)操作,也是在今天才知道倾轧这个词语。 在C++中增加了函数重载操作,也就是可...

C 与 C++变量声明的一些差异

C语言与C++变量声明时有一些差异,比如枚举、结构、联合等数据结构在C语言声明新的变量,都需要带对应的关键字,如 struct stu name,而C++则简化了变量的声明。可以直接使用数据类型的名字直接定义变量,如stu name。具体可看下面的例子。 // C语言#include <...

自实现简单atoi功能

atoi这个库函数实在的太强大了,很多细节上的处理是我们无法想象的,不过最近也尝试做了一下这个练习,发现真的不是那么简单,只实现了一部分功能。如将字符串”123”转换为123,”-0123”转换为-123。代码功能比较简陋,还有诸多没有实现的功能,相比库函数atoi还差的很多,仅供参考。 #include &l...

练习题目“天生棋局”

1、传入一个n 在堆空间中产生n*n方格的棋盘 int ** createBoard(int n); int createBoard1(int ***p,int n); 2、N颗棋子随机落在棋盘上<需要防止落在同一位置> int initBoard(int **p,int n); 3、打印棋盘 int...

练习题目“涨工资”

有一个员工文件salary_back.txt,salary_back.txt文件每行 为部门职员的姓名:工资(如tom:20000),题目要求: 求出该公司有多少人。 从工资文件salary_back.txt中读入全部工人,全部增加100元工资后并保存信息到文件salary.txt中。 将加工资之后的所有员...

求字符串中出现频次最高的字符

题目给出的函数原型如下: char getMostCharFromString(const char *str); 具体要求为,若有多个相同的字符备选,返回其中最早出现的字符,比如字符串”wwwwwwdddaaabbbdddcccc”,w和d都出现过6次,但只返回第一个最早出现的w。 #define _CRT_...