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

上海网站建设 浦东领手工在家做的网站2019

上海网站建设 浦东,领手工在家做的网站2019,珠海企业网站建设费用,惠阳网站制作公司2.1 C中的const 2.1.1 C与C中const的比较 #xff08;1#xff09;C语言中的const C语言中 const修饰的变量是一个 常变量#xff0c;本质还是变量#xff0c;有自己的地址空间。 #xff08;2#xff09;C中的const 1、C中 const 变量声明的是一个真正的常量#xff…2.1 C中的const 2.1.1 C与C中const的比较 1C语言中的const C语言中 const修饰的变量是一个 常变量本质还是变量有自己的地址空间。 2C中的const 1、C中 const 变量声明的是一个真正的常量不是变量所以编译器不会为该常量分配空间 2、const 修饰的常量会被放到“符号表” 中 3、对const常量取地址这一步操作会让编译器为该变量分配空间分配的空间并不会被a使用 4、通过指针改变指向的空间的值这个空间是编译器为常量分配的空间但是常量的值并不在这个空间内 所以即使通过指针修改了这个空间的值也不会影响到 a 本身。 3C编译器对const常量的处理 当碰见常量声明时在符号表中放入常量 问题那又如何解释取地址 编译过程中若发现对const使用了extern或者操作符则给对应的常量分配存储空间兼容C但是编译过程中若发现使用常量则直接以符号表中的值替换即使给该常量分配了空间也并不使用里面的值。 2.1.2 const与#define 相同之处 C中的const修饰的和#define定义的是一个真正的常量而不是C中变量只读。在const修饰的常量编译期间就已经确定下来了 不同之处 1const常量是由编译器处理的提供类型检查和作用域检查 2宏定义由预处理器处理单纯的文本替换 #include iostreamusing namespace std;void f() {#define b 100const int c 200; }int main() {const int a 1; //C中const修饰的是常量存放在符号表中//a;int *p (int *)a; //对const修饰的常量取地址编译器分配了一个整形的长度并且把数字1填写到对应的内存*p 2;cout a endl; //因为a是常量所以用1替换acout b endl; //作用域不同//cout c endl; // 会报错return 0; } 2.2 C中的引用 2.2.1 普通引用 1变量名回顾 变量名实质上是一段连续存储空间的别名是一个标号(门牌号)程序中通过变量来申请并命名内存空间通过变量的名字可以使用存储空间 2 C引用概念 引用可以看作一个已定义变量的别名引用的语法Type name var;引用在定义的时候必须初始化。 #include iostreamint main() {// 定义一个int型变量a,在内存中占4个字节// 变量名 a 就代表了这一块内存或者说 a 是这块内存的别名int a 10; // 定义了一个引用变量 b 它是 a 的别名和 a 代表同一块内存空间// 对 b 的操作 和 对 a 的操作是一样的int b a;// 改变 b 等于改变了 ab 20; std::cout a a b b std::endl;// a 与 b 代表同一块内存空间std::cout a b std::endl;return 0; }3 引用的意义 1、引用作为其它变量的别名而存在因此在一些场合可以代替指针2、引用相对于指针来说具有更好的可读性和实用性。 #include iostreamusing namespace std;void swap(int x, int y) //int x m; {y x y;x y - x;y y - x; }int main() {int a 100;int b a; //定义引用b初始化为a b是a的别名b 200; //a 200cout a endl;int m 1, n 2;swap(m, n);cout m m n n endl;return 0; }4引用的本质 1. 引用类型是否占内存空间struct Student {char a;char b; }; sizeof(struct Student) 》 应该是输出 16 个字节当作指针#include iostreamusing namespace std;struct Test {int a;int b;char c; //引用的本质是常指针 };int main() {int a 1;char ch x;int pa a; //引用定义的时候必须要初始化char pc ch; //等价于 char *const pc ch;//int f;cout sizeof(pa) endl; //引用的长度就是其引用的对象的长度cout sizeof(pc) endl;//分析正常语法现象的时候当做别名来分析//但是分析奇怪的语法现象需要考虑引用的实现cout sizeof(struct Test) endl; return 0; }2. 引用的本质引用在C中的内部实现是一个常指针 Type name Type* const name 1、C编译器在编译过程中使用常指针作为引用的内部实现因此引用所占用的空间大小与指针相同。 2、从使用的角度引用会让人误会其只是一个别名没有自己的存储空间。这是C为了实用性而做出的细节隐藏 当我们使用引用语法的时我们不去关心编译器引用是怎么做的 当我们分析奇怪的语法现象的时我们才去考虑c编译器是怎么做的 5函数返回值为引用 返回栈变量不要返回局部变量的引用返回全局变量或静态变量 #include iostreamusing namespace std;int g 100;int f1() {int a 1;//return a; //不要返回局部变量的引用return g; }int f2() {return g; }int main() {int b f1();f1() 1;//f2() 1; //等价于100 1;return 0; }6指针引用 #include iostream #include cstdlib #include cstringusing namespace std;void Init(char *s) //引用指针 {s (char *)malloc(sizeof(char) * 100); }int main() {char *s NULL;Init(s);strcpy(s, hello);cout s endl;return 0; }2.2.2 常引用 const int e 相当于 const int * const e普通引用 相当于 int *const e1当使用常量字面量对const引用进行初始化时C编译器会为常量值分配空间并将引用名作为这段空间的别名使用字面量对const引用初始化后将生成一个只读变量 #include iostreamint main() {int a 10; int b a; // 普通引用int x 20; const int y x; // 常引用 让变量y拥有只读属性不能通过y改变x的值// 常引用 初始化 分为 2中情况// 1、用变量初始化 常引用{ int a1 20; const int b1 a1; // a1 变量去初始化常引用} // 2、用常量去初始化常引用{ const int a 40; // C编译器把a放在符号表中// int b 41; // 普通引用引用一个常量常量是没有地址空间的这样的做法是不合法的// 使用常量去初始化常引用是合法的,C编译器会为该引用分配空间常量的值存储到分配的空间中去// 使用常量对 const引用 初始化后将生成一个只读变量const int b 42; int *p (int *)b;*p 50; std::cout b b std::endl;}return 0; }
http://www.hkea.cn/news/14490652/

相关文章:

  • 秋莱网站建设住房建设厅的网站首页
  • 常州网站建设企业网站制作深圳专业建站公司
  • 南宁经典网站建设企业所得税怎么算2021
  • 公司网站制作公司哪些网站可以做招商广告
  • 找婚庆公司去什么网站外贸营销型网站建站
  • 做网站优化有什么好处wordpress版小程序
  • 清远住房和城乡建设局网站定制相册哪个网站好
  • 南京当的网站常州市工程建设招标网
  • 网站建设教案旅游公司网站建设策划书
  • 做好一个网站需要多久江苏城乡建设部网站首页
  • 成都微信网站建设推怎么注册网站网址
  • 网站换空间不换域名对seo有影响吗沈阳建设工程信息网官网首页
  • 费县住房和城乡建设局网站仙居做网站的
  • 什么网站百度收录快网站建设验收合格确认书
  • 整站seo技术百度福州分公司
  • 建设网站企业登录纯注册app拉新挣钱
  • 宁波网站建设企业网站制作潍坊百度网站优化
  • 网站的发展前景那些网站企业可以免费展示
  • 499元做网站什么是引流推广
  • 网站开发职业访谈线上注册公司是在哪个网站
  • asp.net mvc 网站开发之美 pdf做挂广告网站
  • 电商网站制作价格wordpress 在线音乐播放器
  • 大连做网站谁家售后好团购网站建设流程
  • 做网站成功的企业制作微信公众号
  • 关于电商网站规划方案四种营销策略
  • 花桥网站制作网站建设的公司太多了
  • 济南高端建站做pc端网站行业现状
  • 简约个人网站阿里企业邮箱价格
  • 安徽工建设信息网站平凉公司网站建设
  • 哪些公司做企业网站河北住房和城乡建设厅网站官网