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);  
    } 


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

相关文章推荐

[startrelatedarticles]

{relatedtitle}

{relateddes}
[endrelatedarticles] [startrelatedarticlesad1]

{relatedtitle}

{relateddes}
[endrelatedarticlesad1] [startrelatedarticlesad2]
{relateddes}
[endrelatedarticlesad2]
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

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