C到C++

2021-05-06 10:26

阅读:676

标签:乘号   指针   情况下   实参   地址   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;
}

  


·

C到C++

标签:乘号   指针   情况下   实参   地址   lse   赋值语句   对象   函数返回值   

原文地址:https://www.cnblogs.com/superdhj/p/13190079.html


评论


亲,登录后才可以留言!