当前位置: 首页 > news >正文

盐城专业做网站的公司seo少女

盐城专业做网站的公司,seo少女,h5用什么网站来做,鄂西建设公司官网一、问题描述 当一个变量声明为const时,通常是不可以改变它的值的,程序设计过程中也不应该这么做。 const int num 666;//我们不应该对num的值进行修改 // num 777; 此语句是错误的 当然,如果我们写以下语句,程序编译也会出现…

一、问题描述

        当一个变量声明为const时,通常是不可以改变它的值的,程序设计过程中也不应该这么做。

const int num = 666;//我们不应该对num的值进行修改
// num = 777;  此语句是错误的

        当然,如果我们写以下语句,程序编译也会出现这样的错误

int *p = #//程序会报错:无法将"const int *"转换为"int *"

        但如果我们强制转换,就会发现程序编译通过了:

int *p = (int *)#//程序编译通过

        这种程序执行之后,通过指针p访问num直接访问num的值是怎样的呢?让我们一探究竟。

二、执行结果

        程序代码如下:(注意:C语言和C++的执行结果是不同的)

int main() {const int num = 666;int *p = (int *)num;*p = 777;printf("num : %d, *p : %d", num, *p);return 0;
}

2.1 C语言的执行结果

        我们补全C语言的代码,并将其放入一个.c文件中:

#include<stdio.h>int main() {const int num = 666;int *p = (int *)num;*p = 777;printf("num : %d, *p : %d", num, *p);return 0;
}

         我们先看程序的执行结果:

        结果显示,二者的值都被改变了。原因是C语言的const关键字为运行时const,编译期间只是定义,在运行时才会初始化。因此,这就是C语言中的const变量不能作为数组长度的原因。

2.2 C++的执行结果

               我们将以下C++代码放入一个.cpp文件中:

#include <iostream>using namespace std;int main(){const int num = 666;int *p = (int *)&num;*p = 777;cout << "num : " << num << ", *p : " << *p << endl;return 0;
}

        执行结果如下:

        我们可以看到,直接访问num的值并没有改变,而通过指针p间接访问到的值改变了,与C语言执行结果不同。因为C++的const变量为编译时const,是像#define宏定义一样使用的常量。

2.3 补充:那const变量空间的值到底改变了吗

        结论:是的,const变量的值的确被改变了。而且二者访问的是同一段空间

那在C++执行结果中,为什么直接访问间接访问会出现两种不同的结果呢?

我们可以通过以下代码,看到两段空间的地址:

#include <iostream>using namespace std;int main(){const int num = 666;int *p = (int *)&num;*p = 777;cout << "num : " << num << ", *p : " << *p << endl;cout << "num 's address : " << &num << endl;cout << "(*p)'s address : " << p << endl; return 0;
}

        通过以上执行结果我们可以看到,两次的地址都是同一个值,说明他们两个是同一段空间

二者不同的原因:为了C++程序运行的效率更高,编译器会将常量表中的值缓存中。当我们直接访问num时,访问的其实是栈中的缓存值,而此时被改变的值并没有同步过来。而我们通过指针*p间接访问的是那段内存空间,因此就是被改变之后的值

http://www.hkea.cn/news/467225/

相关文章:

  • 做网站 要学 什么语言网站优化公司
  • 天乐测绘网做网站吗搜索引擎广告图片
  • 湖南营销型网站建设多少钱百度关键词优化软件网站
  • 怎样给网站做关键词优化百度词条
  • 做网站哪个平台搭建网站需要什么技术
  • 做gif图的网站简述网络营销的主要方法
  • 做图网站被告seo视频网页入口网站推广
  • 做的网站底部应该标注什么意思免费文案素材网站
  • 企业网站搜索引擎拓客农夫山泉软文300字
  • 青岛黄岛区网站开发武汉seo优化
  • 东莞做网站企业铭会员制营销
  • 做网站设计工资多少钱优化教程网官网
  • 计算机网站建设与维护百度关键词统计
  • wordpress网站实现微信登录google google
  • 网站建设 零基础网站关键词如何优化
  • 如何撤销网站上信息app网站
  • 单页式网站系统每日新闻摘要30条
  • 网站开发公司 广告词优化方案电子版
  • 做便民工具网站怎么样关键词挖掘站长工具
  • 纺织面料做哪个网站好百度站长资源
  • 菏泽网站建设哪好怎样做平台推广
  • 网上有做logo的网站吗网络营销的核心是什么
  • 自建网站怎么做推广微信营销策略
  • 跳网站查询的二维码怎么做的关键词排名点击软件网站
  • 兼容手机的网站百度怎么推广自己的视频
  • 宝安中心医院入职体检跟我学seo
  • 企业网站后端模板石家庄疫情最新情况
  • 沈阳哪家网站做的好网络营销是指什么
  • 我的网站模板网站建设主要推广方式
  • 国外app素材网站seo运营是做什么的