博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C语言,const
阅读量:6566 次
发布时间:2019-06-24

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

 

const意味着“只读”

ubunto下的实验

 

1). 关键字const的作用是为给读你代码的人传达非常有用的信息,实际上,声明一个参数为常量是为了告诉了用户这个参数的应用目的。如果你曾花很多时间清理其它人留下的垃圾,你就会很快学会感谢这点多余的信息。(当然,懂得用const的程序员很少会留下的垃圾让别人来清理的。)

2). 通过给优化器一些附加的信息,使用关键字const也许能产生更紧凑的代码。

3). 合理地使用关键字const可以使编译器很自然地保护那些不希望被改变的参数,防止其被无意的代码修改。简而言之,这样可以减少bug的出现。

#include <stdio.h>

void main(void)

{

 int const a = 10;

 int *p = (int*)&a;

 *p = 20;

 printf("&a=%d\n", &a);

 printf(" p=%d\n", p);

 printf(" a=%d\n", a);

 printf("*p=%d\n", *p);

}

 //&a=-1081948900

 //p=-1081948900

 //a=20

 //*p=20

 

1) 修饰一般常量 一般常量是指简单类型的常量

const int a;

int const a;

2)修饰常指针                                                                                            const int *A  ,  int const *A; //const修饰指向的对象,A可变,A指向的对象不可变

int *const A;                  //const修饰指针A, A不可变,A指向的对象可变

const int *const A;            //指针A和A指向的对象都不可变

3) 修饰函数的常参数 const修饰符也可以修饰函数的传递参数,格式如下:void Fun(const int Var); 告诉编译器Var在函数体中的无法改变,从而防止了使用者的一些无意的或错误的修改。

#include <stdio.h>

int const a = 10;

void main(void)

{

 int *p = (int*)&a;

 *p = 20;

 printf("%d\n", *p);

}

//段错误

#include <stdio.h>

void main(void)

{

 int const a = 10;

 int b = 20;

 int *p = (int*)&a;

 *p = 20;

 printf("&a=%x\n", &a);

 printf("&b=%x\n", &b);

 printf(" p=%x\n", p);

 printf(" a=%d\n", a);

 printf("*p=%d\n", *p);

}

//&a=bfbc9c1c

//&b=bfbc9c18

// p=bfbc9c1c

// a=20

//*p=20

//从中可以看出a的值存在栈中。

 

 

 

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

你可能感兴趣的文章
git-svn:通过git来管理svn代码
查看>>
MongoDB学习(五)使用Java驱动程序3.3操作MongoDB快速入门
查看>>
About DotNetNunk
查看>>
通用图形分析
查看>>
Python学习笔记(二):标准流与重定向
查看>>
Thrift - GeilThings
查看>>
潜移默化学会WPF--绘图 学习(一)
查看>>
XmlToJson
查看>>
C++ sizeof 操作符的用法总结
查看>>
strtok和strtok_r
查看>>
C语言使用正则表达式
查看>>
Ajax解决缓存的5种方法
查看>>
Oracle 技术支持之现场优化的思维路径
查看>>
也许每个农村出来的码农都有个田园梦
查看>>
Linux kdb命令
查看>>
J2EE的13种核心技术
查看>>
VMware中安装CentOS7网络配置静态IP地址,常用配置和工具安装
查看>>
【JavaScript吉光片羽】遭遇IE8
查看>>
HTTP请求响应码
查看>>
http://www.fx114.net/qa-24-116329.aspx
查看>>