C语言中connst用法

时间:2020-08-01
本文章向大家介绍C语言中connst用法,主要包括C语言中connst用法使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

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

 1 #include<stdio.h>
 2 int main()
 3 {
 4         const int a;
 5         a+=2;
 6         printf("%d\n",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;

 

原文地址:https://www.cnblogs.com/wqaz-0-1-2-3/p/13416925.html