const基本用法
来源:互联网 发布:看美剧用什么软件 编辑:程序博客网 时间:2024/06/16 00:35
你对const熟悉吗?
先看个例子:
int wages = 3000;
void func1(void)
{
printf("This month wages is = %d/n", wages);
}
void func2(void)
{
wages = 30000;
printf("This month wages is = %d/n", wages);
}
int main(void)
{
func1();
func2();
...
}
func1()是由程序员A编写的,func2()是由程序员B编写的,当他们的各自的模块集合在一起的时候,wages的值就变了,因为程序员B不小心在自己编写的模块中改变了wages的值,老板若是知道了,肯定会炒了你。(程序员A可能会跟B说,和你合作真是太愉快了,又加薪了)
经常编程的人,肯定会知道有一点,在程序中应该尽量避免使用全局变量,因为全局变量的值有可能会在你不知道的情况下被改变。但是,有些情况下,你又不得不使用全局变量,那你该怎么办?
那就是在你的全局变量前,加个const修饰符,即
const int wages = 3000;
这样,若其他人若想改变这个值,编译器就会报错,编译器会告诉你wages是只读的,不能被赋值。
那const还能用在哪里?
常跟字符串函数的人,应该见过不少以下函数吧,
char *strcpy(char *strDes, const char *strSrc)
int strcmp(const char *s, const char *t)
int strlen(const char *str)
char *strcat(char *strDes, const char *strSrc)
为什么这些函数都要加个const修饰符,不加行不行?(就好比我给你一个指向这些字符串的指针,但是你不能修改它)动手试试吧,看看效果,实践是检验真理的唯一标准。
如果你觉得自己懂了const怎么用的话,那么请继续
char *a = "45";
const char *b = "67";
b = a;
‚a = b;
大家觉得执行时会出错,还是‚会出错,动动手
结果大家都知道了把,都没错,只是执行‚时,会有警告,会提示你类型不相容。
[Warning] assignment discards qualifiers from pointer target type
ANSI C标准有说一句:
要使上述赋值形式合法,必须满足下列条件之一:
两个操作数都是指向有限定符或无限定符的相容类型的指针,左边指针所指向的类型必须具有右边指针所指向类型的全部限定符。
现在应该知道为什么了吧
- const的基本用法
- const 基本用法
- const基本用法
- C++关键字const基本用法
- const的常见基本用法
- const到底是什么 二. 基本用法
- 【读书笔记】extern,const的基本用法
- C++的常量const基本用法
- C语言const限定词基本用法
- C/C++中的const和const指针的基本用法
- const在基本数据类型和指针类型中的用法小结
- C++中 const限定符基本用法总结
- const用法
- const用法
- const用法
- const用法
- const用法
- const 用法
- 【转】动态sql语句基本语法
- 怎么偶的分这么少啊
- OpenCV 2.2 on Ubuntu 10.10
- rhel5.0 x86 下:xinetd: 未被识别的服务
- spoj694 Distinct Substrings
- const基本用法
- Installing OpenCV 2.1 in Ubuntu
- 同事的你
- man 命令 linux ubuntu 使用 方法
- 习题(移位运算)
- strrchr(const char * s,int c)
- poj -- 2287 Tian Ji -- The Horse Racing(田忌赛马,递归分治)
- struts2中文问题的处理
- 解决jQuery Ajax提交中文参数变成乱码的方法