C Abstract——const

原创 2015年07月09日 21:57:47

const关键字是一个用来限定变量不被修改的修饰符,在一定程度上可以提高程序的安全性和可靠性。


1)int *const p

const修饰p,故而直接对p进行赋值修改是非法的,p只能指向初始化地址,修改p指向的内容是合法的。

    #include <stdio.h>  
    #include <stdlib.h>  
    int main(int argc, char* argv[])   
    {  
        int a=1;  
        int b=2;  
        int *const p=&a;  
        printf("p address %x, p value is %d.\n", p, *p);  
        *p=b;//p=&b是非法的,因为p的地址不能被改变  
        printf("p address %x, p value is %d.\n", p, *p);  
    }

2)int const *p

const修饰的对象是p指向的内容,所以对*P的赋值是非法的,但通过修改p指向的地址是允许的。

    #include <stdio.h>  
    #include <stdlib.h>  
    int main(int argc, char* argv[])   
    {  
        int a=1;  
        int b=2;  
        int const *p;  
        p=&a;//*p=a是非法的  
        printf("p address %x, p value is %d.\n", p, *p);  
        p=&b;  
        printf("p address %x, p value is %d.\n", p, *p);  
    } 

3)int const* const p

const同时修改了p和p指向的内容,所以p和*p在初始化时就被确定了,任何赋值都是非法的。

    #include <stdio.h>  
    #include <stdlib.h>  
    int main(int argc, char* argv[])   
    {  
        int a=1;  
        int b=2;  
        int const *const p=&a;//必须在声明时初始化  
        printf("p address %x, p value is %d.\n", p, *p);  
    } 


版权声明:本文为博主原创文章,未经博主允许不得转载。

C++、C#中 abstract 与 virtual关键字的区别联系

C++:   C++中,由virtual实现多态。除多态外,virtual有两个特殊用法: 1、虚基类(Virtual base class)       为解决多重继承时的二义性提出来的。使...
  • iefswang
  • iefswang
  • 2012年04月30日 21:01
  • 9671

php关键字:final self static const

//关键字:final self static const //1.final用于定义类和方法的一个重要关键词, //当定义类时该类不能被继承,当定义方法的时候这个方法不能不被重载 // fin...
  • candy19890214
  • candy19890214
  • 2013年10月10日 16:07
  • 509

C++中Abstract class的使用

C++中Abstract class的使用
  • fengbingchun
  • fengbingchun
  • 2016年08月07日 15:52
  • 4166

C语言中const关键字的用法

关键字const用来定义常量,如果一个变量被const修饰,那么它的值就不能再被改变,我想一定有人有这样的疑问,C语言中不是有#define吗,干嘛还要用const呢,我想事物的存在一定有它自己的道理...
  • xingjiarong
  • xingjiarong
  • 2015年08月09日 09:13
  • 15036

C语言声明优先级 const char* char * const

1、先从简单的入手 const char * var和char const * var和char * const var 可以这么理解 const char var 表示var是个char类型的...
  • Hello_Hwc
  • Hello_Hwc
  • 2014年09月26日 21:02
  • 2330

const在C语言中的用法详解

const在C语言中的用法详解此文转自网络,虽然不知出自何处,但无论您是谁,老谢表示感恩分享。const在C语言中算是一个比较新的描述符,我们称之为常量修饰符,意即其所修饰的对象为常量(immutab...
  • itxiebo
  • itxiebo
  • 2016年04月21日 11:01
  • 6205

C井中virtual方法与abstract方法的区别

C井中virtual方法与abstract方法的区别 (转自:http://www.cnblogs.com/yjmyzz/archive/2010/03/30/1700419.html) 先直接看代码...
  • flyerwing
  • flyerwing
  • 2010年03月19日 17:24
  • 6277

C语言const关键字的四种用法

博客: http://www.cnblogs.com/zhangfeionline/p/5882790.html#include /* gcc中,const是通过编译器在编译的时候执行检查来确保实现的...
  • JQ_AK47
  • JQ_AK47
  • 2016年11月13日 22:19
  • 1558

C语言中const有什么用途

const修饰的数据类型是指常类型,常类型的变量或对象的值是不能被更新的。 const关键字的作用主要有以下几点: (1)可以定义const常量,具有不可变性。 例如: const int Ma...
  • qq_26663509
  • qq_26663509
  • 2016年03月04日 16:11
  • 1034

C语言的const与C++const的区别

区别一:  C语言的const是定义了一个const变量,该变量只具备读的功能,而不具备写的功能。   C++的const...
  • u010889616
  • u010889616
  • 2015年08月03日 23:05
  • 1784
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:C Abstract——const
举报原因:
原因补充:

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