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的几个操作都是错误的。

相关推荐
房开民2 小时前
c++总结
java·开发语言·c++
好大哥呀3 小时前
C++ 多态
java·jvm·c++
墨韵流芳4 小时前
CCF-CSP第41次认证第三题——进程通信
c++·人工智能·算法·机器学习·csp·ccf
hz_zhangrl4 小时前
CCF-GESP 等级考试 2026年3月认证C++五级真题解析
c++·青少年编程·程序设计·gesp·c++五级·gesp2026年3月·gesp c++五级
Σίσυφος19004 小时前
C++ 多肽经典面试题
开发语言·c++·面试
软件测试媛4 小时前
2026软件测试面试题大全(含答案+文档)
功能测试·测试工具·面试·ai软件测试
crescent_悦6 小时前
C++:The Largest Generation
java·开发语言·c++
paeamecium6 小时前
【PAT甲级真题】- Student List for Course (25)
数据结构·c++·算法·list·pat考试
NAGNIP7 小时前
一文搞懂CNN经典架构-DenseNet!
算法·面试
花间相见7 小时前
【MySQL面试题】—— MySQL面试高频问题汇总:从原理到实战,覆盖90%考点
数据库·mysql·面试