C++学习之路--2

C + + C \color{pink}{一、C++对C语言的增强}

1、全局变量检测增强

int a;
int a=10;

2、函数检测增强,参数类型增强,返回值检测增强,函数调用参数检测增强

int getRectS(int w, int h)
{
	return w*h
}

3、类型转换检测增强

void test03()
{
	char *p = (char*)malloc(sizeof(64)); //malloc返回值是void*
}

4、struct增强

struct Person
{
	int m;
	void plusAge(); //c++中struct可以加函数,使用时可以不加struct关键字
}

5、bool类型增强

bool flag; //非0值会转换成1

6、三目运算符

void test05()
{
 int a=100;
 int b=200;
 cout << "ret=" << (a < b ? a : b) << endl;
(a < b ? a : b) = 1000;
}

7、const增强,默认内部链接

void test07()
{
 const int m=30;
 int *p = (int *)
}

8、const取地址会分配临时内存,extern编译器也会给const变量分配内存,用普通变量初始化const的变量,自定义数据类型
在这里插入图片描述

\color{pink}{二、引用}

  • 基本语法 Type &别名=原名
  • 引用必须初始化
  • 引用初始化后不可以修改。
  • 数组的引用
    在这里插入图片描述
typedef int(ARRAYREF)[10]; //一个具有10个元素的int类型的数组
ARRAYREF & pArr2 = arr;

&写到左侧叫引用,写到右侧叫取地址

参数传递

  • 值传递
  • 地址传递
  • 引用传递
    • 注意事项
      • 必须引用一个合法的内存空间 // int &a = 10;
      • 不要返回局部变量的引用
      • 如果一个函数的返回值是引用,那么这个函数的调用可以作为左值
        在这里插入图片描述

引用本质就是一个指针常量
常量引用

const int &ref = 10;
int * p = (int*)&ref;
*p = 1000;

猜你喜欢

转载自blog.csdn.net/weixin_43615373/article/details/90294535
今日推荐