博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
指针常量C语言关键字const再理解
阅读量:6731 次
发布时间:2019-06-25

本文共 1110 字,大约阅读时间需要 3 分钟。

PS:今天上午,非常郁闷,有很多简单基础的问题搞得我有些迷茫,哎,代码几天不写就忘。目前又不当COO,还是得用心记代码哦!

        以往对C语言关键字const的解理是一个const类型的常量指针被赋值为某一块存内域区的首地址时,这块存内域区中的数据可不修改。

        如代码const char* string = “abcdefg",此时常量指针string指向一块存内域区,其中数据为"abcdefg",其中的数据可不修改。

        但是若到遇以下代码:

         char             string[]      =  {"abcdefg"};

         char*           dst             =  string;

         const char* src            =  string + 2 * sizeof(char);

         int                 len             =  3 * sizeof(char);

         memmove(dst,  src, len);

         下面代码的行运结果就不说了,其与下面的法看相冲突的就是常量指针src指向的存内域区的数据必定会是被修改了。

         无解吗?非也。

         首行的那种法看本身就是误错的。下面常量指针src指向的是一块栈存内,当然是可以被修改的。

         准确的法看是?

    每日一道理
书,各种各样的书。书,寄托着人类热切的希望;书,蕴含着人类丰富的感悟。提起书,会有说不完的话语……

         无论常量指针指向何种类型的存内域区,不借助强力手腕(指针类型转换去除const)我们是没法通过这个指针来修改它指向的存内域区的数据。换句话说,如果有常量指针cptr和非常量指针ptr指向一同块栈存内域区data,我们不能通过常量指针cptr修改data中的数据,但我们可以通过ptr修改data中的数据。当然,如果data是常量存内域区,则都可不以借助它们修改data中的数据。

         下面的字文可能拗口,有如下代码示例。如:

         char               string[]                   =  {"abcdefg"};

         char*             string_ptr              = string;

          const char* const_string_ptr  = string;

         针对下面代码,有若赋值语句string_ptr[0]  = ‘h';  则是准确的,即可以通过非常量指针string_ptr修改string中的数据。

         但是,如果有代码const_string_ptr[0] = 'h'; ,则gcc会给出误错提示"error: assignment of read-only location 'const_string_ptr'"。

         终了。此记。 

    

           

        

文章结束给大家分享下程序员的一些笑话语录: 腾讯总舵主马化腾,有人曾经戏称如果在Z国选举总统,马化腾一定当选,因为只要QQ来一个弹窗”投马总,送Q币”即可。

转载地址:http://rcfqo.baihongyu.com/

你可能感兴趣的文章
发布使用了stage3D功能的Air for Android项目到手机上
查看>>
15. 利用ajax jquery 上传文件
查看>>
4.类与结构
查看>>
Java Foreach语句使用总结
查看>>
asp.net html中table数据转换为数组传给后台
查看>>
POJ 1584 A Round Peg in a Ground Hole
查看>>
PAT (Advanced Level) 1115. Counting Nodes in a BST (30)
查看>>
[记录]map容器的删除
查看>>
使用innobackupex基于从库搭建级联从库及一两从
查看>>
jQuery的61种选择器
查看>>
UGUI——重写Image类实现进度条
查看>>
ASP.NET:性能与缓存 转帖 张逸老师(http://www.cnblogs.com/wayfarer/articles/48347.aspx)...
查看>>
安装jdk1.8.0_11环境脚本
查看>>
php代码加密
查看>>
dataset的transformations-变形记
查看>>
python - 自动化测试框架 - sendMail
查看>>
JavaScript 实现
查看>>
EasyUI中dialog中嵌入form细节问题记录
查看>>
python结合pyvmomi 监控esxi的磁盘等信息
查看>>
【C++】const成员函数
查看>>