用const编程C语言,[原创]对const使用的理解.

[原创]对const使用的理解.

*/ --------------------------------------------------------------------------------------

*/ 出自: 编程中国 http://www.bc-cn.net

*/ 作者: neverTheSame E-mail:zhaoxufeng9997@126.com QQ:475818502

*/ 时间: 2007-11-16 编程论坛首发

*/ 声明: 尊重作者劳动,转载请保留本段文字

*/ --------------------------------------------------------------------------------------

const对很多人来说既陌生又熟悉.可以说很棘手的问题,

有些地方很难理解.我在刚学C的时侯,对它的理解也是很模糊的.

好像有点理解,但又说不出个所以然来.

在此,就向大家分享,我一直以来对它的理解,如有不当之处请指教.

const可以说一种常量的声明的关键字,如const int a=2;变量a就是一个常变量,

a的值不能被改变,这个改变是一定意义上的不能改变.而是说值的改变不能直接通过a这个符号

来改变.但事实上,a的值是可能改变的.如下例子:

#include

int main()

{

const int a=3;

int *p=(int*)&a;

*p=100;

printf("%d",a);

return 0;

}

这样a的值就被改变了.

const也可以说一种只读的关键字,如int integerArray[10]={0};const int* pointer=integerArray;

这里pointer是指向一个常变量的指针变量.pointer指向可能改变,但它所指向的变量的值就不能直接通过pointer来改变.

如:*(p+1)=2;这是不可以的.但如果有另外一个数组integerArray1,p=integerArray1是可以有.

还有指向的变量不可改变,这种不可改变是一定意义的改变.

如下例子:

#include

int main()

{

int array[10]={0};

const int *pointer=array;

int *pointer1=(int*)pointer;

pointer1[0]=1;

printf("%d",array[0]);

return 0;

}

以上例子说明了,不能直接通过pointer改变array,但可能间接通过pointer来改变array;

现在说一说有const声明常指针,它的声明不像声明指向常量的指针形式.

它的声明形式为:int* const pointer; .常指针在编程的过程中它的指向不能改变.

因此,常指针在声明的时侯一定要给它赋初值.否则,就不能直接给它赋值.

但是,如果一定要给它赋上一定的值,是可以的.如下例子:

#include

int main()

{

int a=2;

int* const p;

int **p1=(int**)&p;

*p1=&a;

printf("%d",*p);

return 0;

}

经过上面的介绍,相信大家对指向常量的常指针的声明也不难写出吧.它的声明形式:

cont int* const p;它就不用作过多的介绍了,指向常量的常指针就是指向常量的指针与

常指针的复合了.

好了就说到这里吧.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值