C++:指针,常量,变量

10_4指针

1.指针和数组名的区别?
数组名-地址-常量(计时数)
指针-变量
2.变量和常量区别?
b = *p(下地址,在p的内存中将存储的地址拿出,再去拿出的地址中取出存储的数据,给变量赋值都是解引用)
3.const关键字
(1)常关键字,常变量(不能作为左值)直接改变值不允许,不能泄漏常量的地址给非常量的指针,必须使用指针取地址可以修改
(2)为什么常量必须初始化?
C++中的常量在编译期将常量的值直接写入到常量的使用点
常量的初始化必须使用常量,否则改量会退化为常变量
Int* p=(int*)&a(生成的是临时变量)
如果使用变量给const修饰的量初始化,则该量会退化为常变量,与C语言中的一致。
const修饰的类型是离它最近的第一个类型,其余是修饰的内容
如果const修饰的内容不包含指针,则无法参与类型
4.引用
(1)引用为什么一旦初始化就无法改变引用的方向?引用为什么必须初始化?
无法改变指针的指向,引用参与类型,引用底层为指针,在使用到引用的地方,编译期会自动替换为指针的解引用,不能用非常量指针引用常量
当引用一个不可取地址的量的时,使用常引用会生成一个临时量,临时量都有常属性
例:
const int& e = fun();
const int& f = 10;
(2)申请动态内存:new,delete,申请和释放内存
(3)面向对象和面向过程语言区别
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_48580892/article/details/120609635