栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

C++入门:const与指针

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

C++入门:const与指针

当存在宏(_cplusplus)则以C++的方式编译,否则以C语言的方式进行编译

   const :在C和C++中的区别

  1. C语言中变量为主,C++中常性为主

C:const int n = 5;

   int arr[n] = { 1, 2, 3, 4};//error

C++:const int n = 5;

     int arr[n] = { 1, 2, 3, 4};//ok

//在C++中直接把值替换成对应的值

 

常性针对变量:不可以改值,可以改变指针指向

p2封锁了指向(封锁:只可读不可写)

const int *p2 = &a;//*p2 = 1000//error  p2 = &b//ok

int const *p3 = &a;//*p2 = 1000//error  p2 = &b//ok

常性针对地址:不可以改指针指向,可以改指针指向的地址所存储的值

p3封锁了自身

int* const p3 = &a;//*p3 = 1000//ok  p3 = &a;//error

常性即针对变量又针对地址:都不能改

p4封锁自身和指向

const int* const p4 = &a;//*p3 = 1000//ok  p3 = &a;//error

两个解释:

①常性不许改变,害怕通过地址对a进行改变;

②权限放大和缩小的原因:可以缩小不可以扩大//安全性

const int a = 10;

int *ip = &a//error   int *ip = (int*)&a//ok  const int* ip = &a//ok

int a = 10;

int *const p = &a;

int *s1 = p;//ok

const int *s2 = p;//ok

int * const s3 = p;//ok

const int *const s4; //ok

    const int a = 10;
    int *const p = &a;
    int *s1 = p;//error
    const int *s2 = p;//ok
    int * const s3 = p;//error
    const int *const s4; //ok

 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/923674.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号