当前位置: 首页 > article >正文

C++面试,const的使用

#include <iostream>
#include <cstring>

int main() {

    const int x = 1;
    int b = 10;
    int c = 20;

    const int* a1 = &b;
    int* const a2 = &b;
    const int* const a3 = &b;

    x = 2;

    a1 = &c;
    *a1 = 1;

    a2 = &c;
    *a2 = 1;

    a3 = &c;
    *a3 = 1;

    return 0;
}

错误1:

x=2,由于变量x为整型常量,因此不能改变x的值。

错误2:

a1定义为const int* 类型,这里的const在int*的左侧,它是用来修饰指针所指向的变量,即指针指向为常量。所以 a1=&c,这个操作是可以的,但是*a1=1,改变了指向的内容是不允许的。

错误3:

a2定于为int* const类型,注意这里的const在int*的右侧,它是用来修饰指针本身的,即指针本身为常量。所以a2=&c,这个操作是不可以的,但是*a2=1,修改了指向的内容是可以的。

错误4:

a3定义为const int* const 类型,这里的两个const分别出现在int*的左侧和右侧,因此它表示不仅指针本身不能修改,并且其指向的内容也不能修改。所以关于a3的几个操作都是错误的。


http://www.kler.cn/a/145845.html

相关文章:

  • 卸载和安装Git小乌龟、git基本命令
  • STM32 FreeRTOS 任务挂起和恢复---实验
  • mysql的测试方案
  • @LoadBalanced注解的实现原理
  • 力扣11-最后一个单词的长度
  • RavenMarket:用AI和区块链重塑预测市场
  • 【LLS-Player】音视频帧的回调过程
  • 基于element自动表格
  • 【数据库】缓冲区管理器结构,几种常用替换策略分析,pin钉住缓冲区块防止错误的替换,以及缓冲区管理带来的代价优化
  • 数据库表结构导出成Excel或Word格式
  • gitee仓库使用教程
  • 【python爬虫】scrapy在pycharm 调试
  • 网络安全等级保护收费标准?
  • Proteus仿真--基于ADC0832的可调频率波形输出
  • Echarts 最简单创建柱状图
  • STM32-SPI3控制MCP3201、MCP3202(Sigma-Delta-ADC芯片)
  • 使用echars实现数据可视化
  • FloodFill
  • 26. Spring源码篇之SpEL表达式的上下文EvaluationContext
  • count=0语句的位置
  • 电力感知边缘计算网关产品设计方案-网关软件设计方案
  • 自定义指令
  • 网络和Linux网络_5(应用层)HTTP协议(方法+报头+状态码)
  • 基于uniapp+vue微信小程序的健康饮食管理系统 907m6
  • C_5练习题
  • 文本转语音:微软语音合成标记语言 (SSML) 文本结构和事件