标签:乘号 指针 情况下 实参 地址 lse 赋值语句 对象 函数返回值
C++相比较C语言来说,多了两个东西:
类(面向对象的编程),模板(泛型编程)
数据类型
1.bool 布尔 表示真假 占一个字节(只需一个位,但内存最小存储单位是字节) 取值:true false
bool isMax(int a,int b) { return a > b; }
2.引用 为变量起外号
typedef int Hp; * 三种用法,乘号、解引用、指针 & 三种用法,位与、取地址、引用 整型引用 int num= 1;(引用必须初始化,否则出错) int& a=num; 指针引用 int *p=# int*& pnum=p;(pnum是p的外号,使用pnum和使用p一样) 值传递 void mySawp(int a,int b) { int temp=a; a=b; b=temp; } 引用传递 void mySwap(int& a,int& b) (在函数内部所操作的数据就是函数外部的数据) { printf("%d",sizeof(a));(四字节) int temp=a; a=b; b=temp; }
注意:1.引用有大小占4字节,对于传参来说,如果类型比较大,是不是除了指针之外多了一种选择
2.指针和引用的区别:
指针是一个有内存的实体,引用只是个外号
引用是常量,常量必须初始化
指针可以赋空值
指针内存是唯一的,引用不唯一
3.函数
1)内联函数 通过内存膨胀来减少函数跳转 函数前添加关键字inline (空间换时间)
内联的缺点:
1.如果函数体内代码过长,不建议用内联
2.函数体内如果有循环,不建议用内联
2)什么时候用内联:简单赋值语句,简单的返回语句(函数体极少,使用频率高)
4.函数的重载 一个函数名对应多个函数体
什么情况下构成重载:1.函数名一致;2.参数列表不同:构成函数重载
参数列表不同:1.对应位置的类型不同;2.参数的个数不同
注意:和函数返回值无关
char a(int a,char c) {} int a(char c,int a) {} int a(char c,int a,int b) {}
5.函数的缺省参数
函数在定义形参时就给出了初始值
注意事项:1.参数的缺省只能有后往前缺省,依次缺省,不能由前往后
2.参数的缺省,在只有定义的情况下可以直接写在定义中,如果有声明,只要在声明中缺省,定义中不需要写
3.缺省参数的过程,如果对应位置不给出实参,就直接用缺省的参数,如果给出实参,会用实参换掉缺省的参数
4.参数的缺省如果和重载混合在一起使用,一定要注意因为缺省参数带来的二义性
int myMul(int a,int b=9)(函数的缺省参数) { return a*b; }
·
标签:乘号 指针 情况下 实参 地址 lse 赋值语句 对象 函数返回值
原文地址:https://www.cnblogs.com/superdhj/p/13190079.html