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

const 的使用

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

const 的使用

#include 
int main()
{
    char array[] = {1, 2, 3};
    char* p1 = &array[0]; // int* p1 = array
    printf("p1=%pn", p1); // p1=000000000061FDF5 
    printf("array+1=%p &array+1=%pn", array+1, &array+1); // array+1=000000000061FDF6 &array+1=000000000061FDF8

    const char* p2 = &array[1];
    // *p2 = *p2 + 1; // error: assignment of read-only location '*p2'
    p2 = &array[2]; // OK
    char* const p3 = &array[1];
    *p3 = *p3 + 1; // OK
    // p3 = &array[2]; // error: assignment of read-only variable 'p3'
    const char* const p4 = &array[1];
    // *p4 = *p4 + 1; // error: assignment of read-only location '*p4'
    // p4 = &array[2]; // error: assignment of read-only location '*p4'

}

前者,const 限制 *p2 内容;后者 const 限制 p3 的内容。

C const 和 C++ const

C 和 C++ 中 const 用法很相似,但是并不是完全相同,

  • 区别之一:C++ 允许在声明数组大小时候使用 const 参数,而 C 不允许。
  • 区别之二:C++ 指针使用更加严格。
const int y;
const int * p2 = &y;
int * p1;
p1 = p2; // C++不允许这样做,但是C可能只是给出警告
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/353090.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

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

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