最全C++对C的扩展,C C++内存优化面试

img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上C C++开发知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

如果你需要这些资料,可以戳这里获取

//没有写参数,代表可以传任何类型的实参

int fun3(){

printf(“fun33333333333333333\n”);

return 0;

}

//C语言,如果函数没有参数,建议写void,代表没有参数

int fun4(void){

printf(“fun4444444444444\n”);

return 0;

}

g(){

return 10;

}

int main(){

fun1(10);

fun2(“abc”);

fun3(1, 2, “abc”);

printf(“g = %d\n”, g());

return 0;

}

在这里插入图片描述

五、更严格的类型转换


在这里插入图片描述

六、struct类型加强


在这里插入图片描述

七、 “新增”bool类型关键字


在这里插入图片描述

八、三目运算符功能增强


在这里插入图片描述

在这里插入图片描述

九、C/C++中的const


1.const概述

在这里插入图片描述

2.C/C++中const的区别

C中的const

在这里插入图片描述

C++中的const

在这里插入图片描述

C/C++中const异同总结

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

3.尽量以const替换#define

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

十、引用(reference)


1.引用基本用法

在这里插入图片描述

在这里插入图片描述

//1. 认识引用

void test01(){

int a = 10;

//给变量a取一个别名b

int& b = a;

cout << “a:” << a << endl;

cout << “b:” << b << endl;

cout << “------------” << endl;

//操作b就相当于操作a本身

b = 100;

cout << “a:” << a << endl;

cout << “b:” << b << endl;

cout << “------------” << endl;

//一个变量可以有n个别名

int& c = a;

c = 200;

cout << “a:” << a << endl;

cout << “b:” << b << endl;

cout << “c:” << c << endl;

cout << “------------” << endl;

//a,b,c的地址都是相同的

cout << “a:” << &a << endl;

cout << “b:” << &b << endl;

cout << “c:” << &c << endl;

}

//2. 使用引用注意事项

void test02(){

//1) 引用必须初始化

//int& ref; //报错:必须初始化引用

//2) 引用一旦初始化,不能改变引用

int a = 10;

int b = 20;

int& ref = a;

ref = b; //不能改变引用

//3) 不能对数组建立引用

int arr[10];

//int& ref3[10] = arr;

}

//1. 建立数组引用方法一

typedef int ArrRef[10];

int arr[10];

ArrRef& aRef = arr;

for (int i = 0; i < 10;i ++){

aRef[i] = i+1;

}

for (int i = 0; i < 10;i++){

cout << arr[i] << " ";

}

cout << endl;

//2. 建立数组引用方法二

int(&f)[10] = arr;

for (int i = 0; i < 10; i++){

f[i] = i+10;

}

for (int i = 0; i < 10; i++){

cout << arr[i] << " ";

}

cout << endl;

2.函数中的引用

在这里插入图片描述

//值传递

void ValueSwap(int m,int n){

int temp = m;

m = n;

n = temp;

}

//地址传递

void PointerSwap(int* m,int* n){

int temp = *m;

*m = *n;

*n = temp;

}

//引用传递

void ReferenceSwap(int& m,int& n){

int temp = m;

m = n;

n = temp;

}

void test(){

int a = 10;

int b = 20;

//值传递

ValueSwap(a, b);

cout << “a:” << a << " b:" << b << endl;

//地址传递

PointerSwap(&a, &b);

cout << “a:” << a << " b:" << b << endl;

//引用传递

ReferenceSwap(a, b);

cout << “a:” << a << " b:" << b << endl;

}

在这里插入图片描述

//返回局部变量引用

int& TestFun01(){

int a = 10; //局部变量

return a;

}

//返回静态变量引用

int& TestFunc02(){

static int a = 20;

cout << "static int a : " << a << endl;

return a;

}

int main(){

//不能返回局部变量的引用

int& ret01 = TestFun01();

//如果函数做左值,那么必须返回引用

TestFunc02();

TestFunc02() = 100;

img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上C C++开发知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

如果你需要这些资料,可以戳这里获取

a << endl;

return a;

}

int main(){

//不能返回局部变量的引用

int& ret01 = TestFun01();

//如果函数做左值,那么必须返回引用

TestFunc02();

TestFunc02() = 100;

[外链图片转存中…(img-G3qbaTya-1715812538833)]
[外链图片转存中…(img-H0t2ci5N-1715812538834)]

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上C C++开发知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

如果你需要这些资料,可以戳这里获取

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值