1.const可用于保护数据:如下例程序所示,可保护数组不被show_array函数改变其值。

 1 #include<stdio.h>
 2 #define SIZE 5
 3 void show_arry(const double ar[], int n);
 4 void mult_array(double ar[], int n, double mult);
 5 int main(void)
 6 {
 7     double dip[SIZE] = { 20.0,3.2,5.3,63.0,6.3 };
 8
 9     printf("the original dip array:\n");
10     show_arry(dip, SIZE);
11     mult_array(dip, SIZE, 5.0);
12     printf("the dip array after callling mult_array():\n");
13     show_arry(dip, SIZE);
14
15     return 0;
16 }
17
18
19 void show_arry(const double ar[], int n)
20 {
21     int i;
22     for (i = 0; i < n; i++)
23         printf("%8.3f", ar[i]);
24     putchar('\n');
25 }
26
27 void mult_array(double ar[], int n, double mult)
28 {
29     int i;
30     for (i = 0; i < n; i++)
31         ar[i] *= mult;
32
33 }

2.
double rates[3]={2.3,3.1,56.0};
const double *pd =rates;
中,不可使用pd 改变它指向的值:
*pd=29.89;   //不允许
pd[2]=22.13;  //不允许
rates[0]=22.33; //允许,因为rates未被const限定
但可以让指针指向别处,即:
pd++;      //允许
3.指向const的指针一般用于函数形参当中,表示函数不会使用指针改变数据:
void show_array(const double *ar,int n);
1)把const数据或非const 数据的地址初始化为指向const的指针或为其赋值是合法的:。
2)只能把非const数据的地址赋给普通指针。
4.
double rates[3]={2.3,3.1,56.0};
double const *pc=rates;
中,声明并初始化一个不可以指向别处的指针,即:
pc++;  //不允许
但是可以改变其指向的值:
*pc=50.2 //允许
5.
double rates[3]={2.3,3.1,56.0};
const double const *pb=rates;
中,该指针既不能改变其指向的值,也不能改变其指向,即
pb=&rate[1]; //不允许
*pb=3.0;  //不允许

转载于:https://www.cnblogs.com/bingger/p/11110275.html

c语言【const】用法相关推荐

  1. c语言const用法的位置与意义,const(c语言const的用法详解)

    const int *A; //const修饰指向的对象,A可变,A指向的对象不可变 怎么理解?. 呵呵,想法挺独特啊.const在声明变量时有四种用法:int x = 10;int y = 11.c ...

  2. C语言const用法详解(带实例)

    const与define区别 在C语言中const常用来定义常量,表示这个常量是不可以被修改的.define宏定义也可以用来表示一个常量.那么他们有那些区别呢! 1.预编译指令只是对值进行简单的替换, ...

  3. C语言const用法

    1.const变量,初始化时必须赋值 const int num=5; //等价于下一行 int const num=5; 2.指针常量和常量指针 2.1.指针常量(*在前,const在后) int ...

  4. 计算长方形体积c语言const,c语言const

    <OOC>笔记(1)--C语言const.static和extern的用法 笔记(1)--C语言const.static和extern的用法 C语言中const关键字用法不少,我只喜欢两种 ...

  5. c语言 const常量作用,C语言 const常量讲解

    //const的本质 //const本质上是伪常量,无法用于数组初始化以及全局变量初始化 //原因在于const仅仅限定变量无法直接赋值,但是却可以通过指针间接赋值 //例如局部常量在栈区,而不在静态 ...

  6. C语言高频率--typedef和const用法详解

    一.typedef用法详解 C语言允许为一个数据类型起一个新的别名,就像给人起"绰号"一样. 起别名的目的不是为了提高程序运行效率,而是为了编码方便.例如有一个结构体的名字是 st ...

  7. C语言返回值是const类型,C++中const用法总结

    1.1.1. 定义普通常量 使用#define来定义常量也是常用方法,但const也可以用来定义常量,在[Effective C++]中建议使用const代替#define来定义常量,因为const定 ...

  8. C语言const使用

    C语言const使用 作者:delnabla 日期:2009-06-11 字体大小: 小 中 大 看了几篇介绍const的文章,这篇讲解的比较透彻易懂,摘录过来! const是一个C语言的关键字,它限 ...

  9. C语言const专题

    C语言const专题 const基础知识(用法.含义.好处.扩展) 含义 Const好处 const基础知识(用法.含义.好处.扩展) int main() {const int a; // int ...

  10. c语言指针用法有哪些

    c语言指针用法: 一,指针定义: 指针变量的取值范围取值0~4G,是一种数据类型(无符号整数,代表了内存编号).它可以用来定义变量(与int.long一样),与int.long不同的它存储整数代表了内 ...

最新文章

  1. LVM 类型的 Storage Pool - 每天5分钟玩转 OpenStack(8)
  2. 编译器错误信息: CS1595: 已在多处定义“ ”;一种可能出现的情况
  3. UVa 10652 (简单凸包) Board Wrapping
  4. python 编程算法_python语言编程算法
  5. javascript基本数据类型与值类型引用类型说明
  6. 怎么创建c语言数组的格式,c – 如何创建类类型数组?
  7. 星际争霸战略战术的发展和创新
  8. Ubuntu系统各个版本的镜像下载地址
  9. Youzi2D推出开源HTML5游戏加速引擎
  10. 基于MUI框架的影视播放APP的设计与实现毕业设计论文参考【原查重5.1%】
  11. 物联网应用网站——用户手册
  12. 服务器ghost备份后无法进入系统还原,一键Ghost备份还原解决方法
  13. chrome浏览器google搜索结果打不开
  14. 加州大学欧文计算机排名,2019加州大学欧文分校排名(USNews排名)
  15. Python爬虫从入门到精通:(36)CrawlSpider实现深度爬取_Python涛哥
  16. 人脸识别 ArcFace 实现
  17. html2canvas导出照片样式乱,html2canvas生成图片(图片样式和显示样式不一致)
  18. DFC开发平台的设计理念
  19. mysql 表设计工具_非常好用的一个表设计工具(EZDML)
  20. 图像质量评价学习笔记02:IQA模型性能评价指标(PLCC、SROCC、KROCC、RMSE)

热门文章

  1. C++算法学习(回溯算法)
  2. android源码已关联设备,获取android设备已安装应用信息
  3. java float存储方式_Java中小数的存储方式
  4. JAVA 集合Null 初始化_springboot使用mybatis-plus表单更新null值问题通用解决方案
  5. interop.cdo 发送邮件乱码_手把手教你用 Java 发送邮件,不用框架
  6. c++ 方向_物理微课揭秘摩擦力的方向
  7. android 发送按键 0,android monitor tool (8.0 模拟发送按键及触摸屏事件实现)
  8. 基于Java的智能问答系统
  9. [数据仓库]数据仓库和数据库的区别
  10. C#.NET 通用权限管理系统中的数据集权限设置实现参考界面(商业化成熟权限管理系统,提供全部源码)...