C++面试,const的使用

cpp 复制代码
#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的几个操作都是错误的。

相关推荐
怕浪猫14 小时前
Claude Code vs Codex:Computer Use 实现原理深度拆解
算法·面试·github
choumin16 小时前
C++中万能引用与std::forward的作用和用法
c++·万能引用·std forward
下一站春风里17 小时前
位运算完整学习笔记:按位与(&)+ 异或(^)
开发语言·c++·算法
考研保研资料分享18 小时前
无论文竞赛保研中科院植物所:三场考核、科研追问与准备复盘
面试
救救孩子把18 小时前
AI面试八股文-23_23-Agent可观测性与生产监控面试题
人工智能·面试·职场和发展·agent·langsmith·langfuase
努力努力再努力wz20 小时前
【C++高阶系列】C++20 协程底层原理:函数为什么能暂停?从状态机到 Task,彻底串起挂起、恢复与协程调度
开发语言·c++·c++20·1024程序员节
划破黑暗的第一缕曙光20 小时前
[C++]:4.模板
c++·template·模板·函数模版·类模版
十五年专注C++开发20 小时前
pybind11:一个跨C++和Python平台的编程库
开发语言·c++·python·pybind11
CodeYp201921 小时前
第11讲:stack 和 queue
开发语言·c++·queue·stack
彭亚川Allen21 小时前
从零手搓 RAG 之 Embedding 技术
前端·后端·面试