您现在的位置: 中国男护士网 >> 考试频道 >> 计算机等级 >> 二级辅导 >> C语言 >> 辅导 >> 正文    
  对const使用的理解 【注册男护士专用博客】          

对const使用的理解

www.nanhushi.com     佚名   不详 

  const对很多人来说既陌生又熟悉.可以说很棘手的问题,有些地方很难理解.我在刚学C的时侯,对它的理解也是很模糊的.好像有点理解,但又说不出个所以然来.在此,就向大家分享,我一直以来对它的理解,如有不当之处请指教.

  const可以说一种常量的声明的关键字,如const int a=2;变量a就是一个常变量,a的值不能被改变,这个改变是一定意义上的不能改变.而是说值的改变不能直接通过a这个符号来改变.但事实上,a的值是可能改变的.如下例子:
#include<stdio.h>
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<stdio.h>
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<stdio.h>
int main()
{
    int a=2;
    int* const p;
    int **p1=(int**)&p;
    *p1=&a;
    printf("%d",*p);
    return 0;
}
  经过上面的介绍,相信大家对指向常量的常指针的声明也不难写出吧.它的声明形式:cont int* const p;它就不用作过多的介绍了,指向常量的常指针就是指向常量的指针与常指针的复合了.
  好了就说到这里吧.

 

文章录入:杜斌    责任编辑:杜斌 
  • 上一篇文章:

  • 下一篇文章:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
     

    联 系 信 息
    QQ:88236621
    电话:15853773350
    E-Mail:malenurse@163.com
    免费发布招聘信息
    做中国最专业男护士门户网站
    最 新 热 门
    最 新 推 荐
    相 关 文 章
    没有相关文章
    专 题 栏 目