摘要:
C语言中,空指针是NULL,是一个宏 在C++中NULL似乎也可以用,但是C++中的NULL其实是有问题的。C++大佬在设计的时候可能没有考虑全面 在C++98中,字面常量0既可以是一个整形数字,也可以是无类型的指针(void*)常量 但是编译器默认情况下 将其看成是一个整形常量,如果要将其按照指针 阅读全文
摘要:
缺省参数 什么是缺省参数呢? 简单来说,就是 函数的参数可以给一个默认值,如果不给这个函数传递参数的时候 那么改参数就是默认值 , 否则参数就是你指定的参数 缺省参数分为全缺省和半缺省 全缺省参数: 所有的参数都有默认值 void func(int a=10,int b=20,int c=30) { 阅读全文
摘要:
引用 我们知道C语言以指针著名 C++大佬在发明C++的过程中,觉得指针有些难,就发明了引用 引用是什么? 引用并不是定义一个新的变量,而是给一个已存在的变量取一个别名. 编译器不会给引用变量开辟内存空间 , 这个别名 和它引用的的变量(原变量) 共用同一块内存空间 简单来说就是 : 引用变量和原变 阅读全文
摘要:
auto用来干啥 在C语言中,auto是用来修饰局部变量的,意味着该变量在该代码块内要有效,出代码块自动销毁 但是在C++中,有了新的用法:自动推导变量类型 int a = 10; auto b = a; //自动推导b的类型为a的类型(整形) auto c = 'c';//自动推导c的类型为字符型 阅读全文
摘要:
函数重载 什么是函数重载 简单来说 ,就是 可以有多个相同函数名的函数, 但是这些函数的参数个数 或者参数类型 或者参数的类型顺序 是不一样的. 通常来处理类似的功能,但是数据个数或者类型不同的情况 如:计算器就是一个例子 ,加法可以是任何个数任何类型的数的加法 但是都只按一个 " + "号就可以完 阅读全文
摘要:
什么是内联函数 以inline修饰的函数叫做内联函数,编译时C++编译器会在调用内联函数的地方展开,没有函数调用建立栈帧的开销,内联函数提升程序运行的效率。 为什么存在内联函数 我们知道,普通的函数需要建立栈帧空间 因此,可以利用宏来定义一些小的函数(行数较少的) 这样,函数调用的时候其实就是语句的 阅读全文
摘要:
C++关键字认识 命名空间 先看一个例子 定义一个rand变量,然后打印 ,这是没问题的 但是如果我们包含头文件 stdlib.h呢? 就会出现重定义问题 这是为什么呢? 因为stdlib里面本来就有一个函数叫 rand() 所以当包含了头文件之后,链接的时候会发现 rand重复定义了 --这就是命 阅读全文