some cases about "const" in C Program

原创 2007年09月26日 16:39:00
关键字const并不能把变量变成常量!在一个符号前加上const限定符只是表示这个符号不能被赋值。也就是它的值对于这个符号来说是只读的,但它并不能防止通过程序的内部(甚至是外部)的方法来修改这个值。const最有用之处就是用它来限定函数的形参,这样该函数将不会修改实参指针所指的数据,但其他的函数却可能会修改它,这也许就是C和C++中const最一般的用法。---------〈C专家编程〉
const 在C中的真正含义是“readonly“,即,表示所限定的变量只可读,它并不表示“纯正”的常量!所以不能用它所限定的变量来定义数组。
例如:
const int x= 10;
char ch[x];    //error!

C中的指针有四种:
(1) type *p;
(2) type const *p;
(3) type *const p;
(4) type const * const p;
其中,type为任何一个数据类型,假设为int吧。

第一种指针是指向变量数据的变量指针,
指针的地址可以改变,其指针指向的内容也可以改变;
第二种指针是指向常量数据的变量指针,
指针的地址可以改变,但其指向的内容不允许改变;

第三种指针是指向变量数据的常量指针,
指针的地址不允许改变,但其指向的内容可以改变;
第四种指针是指向常量数据的常量指针,
指针的地址不允许改变,其指向的内容也不可以改变。

举例说明如下:
(1)const int *p 也就是:  int const* p;
表示p是一个指向常整型数据的指针,该指针的地址可以改变,即可以指向其它的变量,但不能通过引用该指针而改变其指向的内容。

如:
int ix = 12;
const int *p = &ix;
则下列语句:
p = &iy;         // true
*p = 13;       //ERROR
(2) int * const p;
表示p指针不能改变,即p存放的地址值不能改变,但p指向的变量的值可以变。
如:
int ix = 12;
int * const p = &ix;
则下列语句:
p = &iy;      //ERROR
*p = 13;    //true

执行umount 的时候却提示:device is busy 的处理方法

[root@web2-server yum.repos.d]# umount /mnt/cdrom/ umount: /mnt/cdrom: device is busy. (In some ca...
  • lengyue1084
  • lengyue1084
  • 2016年05月22日 23:31
  • 5458

/dev/shm问题处理

/dev/shm问题处理 [root@oracle11g ~]# df -k /dev/shm Filesystem           1K-blocks      Used Available...
  • rgb_rgb
  • rgb_rgb
  • 2013年11月21日 18:57
  • 6129

Android Studio更新升级方法

自从2013 Google I/O大会之后,笔者就将android ide开发工具从eclipse迁移到Android Studio了,android studio一直在更新完善,为了与时俱进,我们当...
  • zgxzgxzg
  • zgxzgxzg
  • 2015年09月15日 11:06
  • 2539

some special cases of "extern" in C

we can use extern to specify that a symbol is defined somewhere else, e.ga.c:extern int a;b.cint a;W...
  • fatshaw
  • fatshaw
  • 2011年07月22日 11:20
  • 530

Android webview doesn't display web page in some cases

http://stackoverflow.com/questions/15133132/android-webview-doesnt-display-web-page-in-some-cases ...
  • rong_wz
  • rong_wz
  • 2014年03月18日 19:20
  • 2430

Some tips about Control Flow in Python

1. You can use tuple unpacking to make some for loops cleaner: Bad: somelist = [(1, 2), (3,...
  • johnnyelf83
  • johnnyelf83
  • 2013年07月22日 18:06
  • 611

some of example about speech in matlab

  • 2011年11月10日 16:16
  • 23.43MB
  • 下载

Some Tips In Object C

 源自:http://blog.csdn.net/kmyhy/archive/2010/07/06/5716755.aspx 1.使用class获得meta classNSLog (@"Class n...
  • Koupoo
  • Koupoo
  • 2011年04月11日 21:48
  • 884

c编译错误--error:stray \357 in program及其引发的字符编码概述

在编译c文件的时候,出现如下错误: link.c:69: error: stray ‘\357’ in program link.c:69:error: stray ‘\274’in progra...
  • wolf_break
  • wolf_break
  • 2014年07月17日 12:46
  • 2644

Collect preferences failed, class java/lang/AutoCloseable not found in C:\Program Files (x86)\Androi

刚更新了Android sdk 19,但是出现以下两个问题,浪费我2个小时的时间,现在将我遇到的问题和解决方法总结如下: 问题1:打开eclipse点更新后,出现This Android SDK r...
  • a876434758
  • a876434758
  • 2015年07月13日 11:16
  • 344
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:some cases about "const" in C Program
举报原因:
原因补充:

(最多只允许输入30个字)