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;

最新文章

  1. java 环境配置 及java 历史
  2. iPhone 信号格转变数字
  3. 走进 Spring IOC 的世界
  4. sql server case when 判断为空
  5. SQL--查询相同字段的数据
  6. PySe-003-Se-WebDriver 启动浏览器之一 - Firefox
  7. windows git的安装配置(转)
  8. BZOJ 4341 [CF253 Printer] 解题报告
  9. JSON参数解析工具类
  10. hdu 1042
  11. CLR via C# - Char_String
  12. 1352 - Colored Cubes (枚举方法)
  13. ZOJ 1654 二分匹配基础题
  14. Android binder机制---概述
  15. windows系统命令行
  16. autodesk fbx sdk sample里面的工程无法调试解决方法
  17. highcharts 知识点
  18. hive spark版本对应关系
  19. Docker 系列01: Centos7.3 上安装docker
  20. c++11 并发 条件变量 超时等待的代码练习

热门文章

  1. Linux 网络编程的5种IO模型:多路复用(select/poll/epoll)
  2. python造一个计算器
  3. week01-绪论作业
  4. 手把手教你使用容器服务 TKE 集群审计排查问题
  5. php 断点续传以及100% 后台zip解压
  6. linux下的终端利器----tmux
  7. Hive Join优化
  8. fashion数据集训练
  9. Git本地仓库和远程仓库冲突解决
  10. [原题复现]2019上海大学生WEB-Decade(无参数RCE、Fuzz)