[c++]从完全不会到似懂非懂

1. 指针

1.1 指针常量

使用int * const p = &a;的模式,指针常量是常量,所以p对应的常量为a的地址,因此a可变,但地址不可变。

1.2 常量指针

使用const int *p = &a的模式,其实这里和const无关,p只是个指针,该指针的类型是const int类型,因此p可以修改指针指向其他的const int类型,但无法修改指向的内存中的值(可以通过其他的引用来修改,const可以指向非const,非const不可指向const)。

2. 结构体

结构体const

为了防止在函数中修改原本的结构体内容,因此需要将函数的形参声明为const类型,即const struct student *p,也就是p指针的类型是const struct student *类型,因为无法修改结构体。联想到Android开发中的局部变量final修饰,表示以后对该变量仅有只读操作,强调只读性。

3. C++内存模型

分为四区,代码区、全局区、栈区、堆区。代码区存放着代码文件、编译好的文件由操作系统控制,特点是共享和只读,全局区存放静态变量、字符串常量、全局常量、全局变量,栈区存放函数的形参、局部变量,由编译器控制,堆区存放new出来的对象,手动delete释放(释放数组时delete [])。其中new关键字返回的是指针。

4. 引用

引用的符号为&,案例为

int a = 10;
int & b = a; //等价于 int * const b = &a;因此无法修改引用,只能修改对应的值

引用常量,const int & b = 10,常常用在修饰形参,保证不被修改。

5. 重载

...

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值