栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

offer拿到手软系列之C++(C语言基础深入优化)

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

offer拿到手软系列之C++(C语言基础深入优化)

基础c++
    • 深入了解数组名和指针的区别
    • 常量与变量
  • 什么是常量
    • 引用
    • New和Delete
    • c和c++本质区别

深入了解数组名和指针的区别

数组名是一个常量
而指针是一个变量

int arr[] = {1,2,3,4,5,6};
cout << arr << endl;

用汇编语言理解

lea计算计算机内存地址,并且将地址赋值给eax中
由此可见,数组名的显示了地址

int* p = arr;
cout << *p < 


当进行到指针的时候,会先进行一次解引用,先引用p地址所指向的内容放入eax中

常量与变量

在刚刚的数组名和指针的例子显示出常量和变量的区别,
当用常量赋值

int a = 10;

编译器会直接变量赋值

当用变量赋值

int b = a ;

会先解引用变量的值,赋值给eax中,再将eax赋值给b

什么是常量

常量:是不能修改的左值,是用const修饰的变量
特点:在编译时期系统会将定义的常量替换,替换成数值。
(因此在定义常变量的时候需要先进行赋值)

定义常变量的方法

const int * p= &a ;其中第一行第二行表达相同的意思

int const * p= &a ;创建一个整形常量类型的指针(指针所指向的为常量)

int * const p= &a ;创建一个整形指针常量的p(p为常量)

const定义规则,const左右第一个类型为其修饰的类型。

除此之外
const有时候无法重载

int fun (int a );
int fun ( const int a);此时函数不可以发生重载

若const修饰的是指针则可以发生重载

int fun (int * p);
int fun (const int *p);
引用

引用的本质:引用的底层是个指针,在使用到引用的地方,系统会在编译期自动替换成底层指针的解引用。
因此引用的时候需要地址

int fun() return 10;
const int & e = fun();

此时fun返回的是一个临时量,由于临时量具有常属性,因此引用需要加const
这个时候的引用叫常引用

New和Delete

new在c++中申请空间,类似于c语言的malloc

new 类型[个数]
new int[5];

delete在c++中摧毁空间,类似于c语言中的free

delete[]变量名
delete[]arr;
c和c++本质区别

c语言是一个面向过程的语言
c++是一个面向对象的语言//具有封装性

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/317119.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号