• C语言中connst用法


    1、const一般用来定义只读变量,这个变量的之只能在初始化时赋值,如果初始化时没有赋值,则默认为0。如果在其他地方试图更改此值,编译会报错。如:

     1 #include<stdio.h>
     2 int main()
     3 {
     4         const int a;
     5         a+=2;
     6         printf("%d
    ",a);
     7         return 0;
     8 
     9 }
    10 
    11 
    12 运行结果:
    13 con.c: In function ‘main’:
    14 con.c:5:3: error: assignment of read-only variable ‘a’
    15   a+=2;
    

    2、const 和指针

    const和指针有以下几种书写方式:
    • const int *a

      指针指向的内容不可变,但指针可以改变

     #include<stdio.h>

    int main()
    {
            int w=1;
            int q=2;
            const int  *a=w;
            a=&q;
            ++a;
            ++*a;
            printf("%d/n",*a);

    }

    运行结果:

    con1.c: In function ‘main’:
    con1.c:10:9: error: increment of read-only location ‘*a’
             ++*a;

    • int const *a

       指针指向的内容不可变,指针可以改变。

     1 #include<stdio.h>
     2 
     3 int main()
     4 {
     5         int w=1;
     6         int q=2;
     7         int const *a=q;
     8         a=&w;
     9 //      int *const a=&w;
    10 //      const* int a;
    11 //      const int *a;
    12 
    13         ++a;
    14         ++*a;
    15 
    16 }
    

    运行结果:

     con1.c: In function ‘main’:
     con1.c:14:2: error: increment of read-only location ‘*a’
      ++*a;
     ^
    • int *const a

        const修饰了a, a本身是一个常量,而a还是一个指针,结果就是一个指针常量,指针不可变,但指针内容可变。

    #include<stdio.h>
    
    int main()
    {
            int w=1;
            int q=2;
            int *const a=&w;
            ++a;
            ++*a;
    
    }

    运行结果:

    con1.c: In function ‘main’:
    con1.c:8:9: error: increment of read-only variable ‘a’
             ++a;

     

  • 相关阅读:
    Diffusion Particle Resolver
    GPU Jacobi Iterator
    Remark for ColorSpectrum Rendering
    关于Windows的命令行多语言输出
    DPR Sphere in Cloud
    看到一篇有意思的东西,记录一下
    GFS的系统架构
    jsp实现树状结构
    工作笔记
    批量删除
  • 原文地址:https://www.cnblogs.com/wqaz-0-1-2-3/p/13416925.html
Copyright © 2020-2023  润新知