C++
路之遥每天进步一点点
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
auto,范围for,NULL
auto,范围for,NULL在c语言中auto表示局部变量c++中进行自动类型推导,根据初始化表达式进行推导,相当于类型占位符1.定义时必须初始化 auto a;(error)2.auto可以同时定义多个变量,每个表达式的类型必须一致3.多用于长类型的定义,但不易理解4.函数参数不能使用auto void fun(auto a,auto b);(error)5.auto定义指针加不加*都一样范围for (要迭代的变量:迭代的范围),其中范围要明确编译器默认NULL为整数的0,C++原创 2020-05-22 19:42:28 · 289 阅读 · 0 评论 -
内联函数
内联函数#include<iostream>using namespace std;#define ADD(a,b) a+b//c++有说那些技术可以代替宏//1:常量定义//2:函数定义使用内联函数 //int Add(int a,int b){// return a+b;//} inline int Add(int a,int b){//编译器编译时,会进行函数指令的展开,没有栈帧的开销,提高运行效率 但对于函数结构太过复杂的并不会展开(循环或者递归) return原创 2020-05-22 19:36:02 · 192 阅读 · 0 评论 -
引用
引用引用和指针的区别1:引用在定义时必须初始化,指针没有要求2:引用初始化时指向一个实体,之后不能再指向其他实体,而指针可以在任何时候指向任何同类型0的实体3:没有NULL引用但有空指针4:sizeof(引用)结果是指向实体类型的大小,而sizeof(指针)是固定的8,或者45:引用自加即引用实体自加,而指针自加指的是向后偏移一个类型的大小6:有多级指针但没有多级引用7:访问实体方式不同,指针需要解引用而引用不需要const引用(1.引用指向const修饰的变量或者是常量时也需要用co原创 2020-05-22 19:34:56 · 241 阅读 · 0 评论 -
函数重载
函数重载c编译器:编译后底层函数名中不包含参数信息 _addc++编译器:编译后函数名中包含参数信息,所以支持重载 _Z3addii(两个i,表示两个int类型的形参)函数重载:函数名相同,参数(顺序,个数,类型)不同extern “C” +函数 可以让编译器按照C语言的编译规则进行编译#include<iostream>using namespace std;//c编译器:编译后底层函数名中不包含参数信息//c++编译器:编译后函数名中包含参数信息,所以支持重载原创 2020-05-22 19:30:13 · 182 阅读 · 0 评论 -
缺省参数
缺省参数半缺省参数必须从右向左一次性给缺省参数赋值,中间不能有间隔如果没有传参,就使用默认参数并且缺省值只能在函数声明或者定义处出现,不能同时出现#include<iostream>using namespace std;//void fun(int a,int b,int c){ cout<<a<<b<<c<<endl;}//必须从右向左一次性给缺省参数赋值,中间不能有间隔 void fun1(int a=1,int b=原创 2020-05-22 19:25:07 · 263 阅读 · 0 评论 -
标准输入输出
标准输入输出cout字符串指针输出内容,非字符串指针输出地址#include<iostream>using namespace std;int main(){ char* p="1234"; int a=10; int* pa=&a; cout<<p<<endl;//cout字符串指针输出内容,非字符串指针输出地址 cout<<pa<<endl; return 0;} ...原创 2020-05-22 19:20:21 · 166 阅读 · 0 评论 -
命名空间
命名空间c++命名空间的使用方式(可以分段,可以嵌套定义)1:命名空间+::+成员(推荐使用)2:using+命名空间+::+成员; 在后面使用时不用加作用域,成员暴露在全局域中,如果区全局域中有同名成员,会导致命名冲突3:using+namespace+命名空间; 成员全部暴露在全局域中,可能会导致命名冲突 #include<stdio.h> //c++命名空间的使用方式(可以分段,可以嵌套定义) //1:命名空间+::+成员(推荐使用)//2:using+命名空间+原创 2020-05-22 19:17:25 · 187 阅读 · 0 评论
分享