c语言关键词const,c语言const关键字

作者:沉默羔羊

c语言const关键字:

-- 特点。

使用该关键修饰的变量不能被改变。

--指针常量。

demo:

const char *p或者是 char const * p

--常量指针。

demo:

char * const p

--常量指针和指针常量。

1.常量指针指的是如 char * const p, p是一个常量,p不能改变指向。

2.指针常量指的是如char const *p, p指向一个字符常量,p可以改变指向。但是不能改变*p.

--对于常量指针和指针常量的记忆方法如下。

The C++ Programming Language里面给出过一个助记的方法:

把一个声明从右向左读。

char * const cp; ( * 读成 pointer to ) cp is a const pointer to char

const char * p; p is a pointer to const char;/************************************************************************* >File Name: const1.c >Author: 沉默羔羊 >Mail: zshh0604@163.com >Created Time: 2014年10月20日 星期一 19时29分01秒 ************************************************************************/#include#include#define CONST_POINTER#define POINTER_CONSTint test(void){/*** * const:关键字, * 使用const修改的变量,初始化之后不能步修改。 * * 该关键值使用之后比较容易产生疑问的表达式: *一:指针常量 *const char *p; *或者是 *char const *p; *二:常量指针 *char * const p; *三:常量指针也是指针常量的表达式。 *const char * const *p; * * The C++ Programming Language里面给出过一个助记的方法: *把一个声明从右向左读。 * char * const cp; ( * 读成 pointer to ) cp is a const pointer to char *const char * p; p is a pointer to const char; */int a = 10;int b = 20;const int * p0; //指针常量 int const * p1; //指针常量int * const p2 = &b; //常量指针。const int * const p3 = &a;#ifdef CONST_POINTERp0 = &a; printf("p0 = %d\n",*p0); p0 = &b;printf("p0 = %d\n",*p0); #if 0 *p0 = 10; //p0是一个指向常量字符的指针。但p0不是常量。p0指向的是int类型的常量。#endifp1 = &a;printf("p1 = %d\n",*p1);p1 = &b;printf("p1 = %d\n",*p1);#if 0*p1 =10 ; //更改指针指向的常量时变量会报错。#endif #endif#ifdef POINTER_CONST#if 0p2 = &a; //p2是个常量。修改p2的指向编译的时候会出错。#endif*p2 = 30; printf("p2 = %d\n",*p2);#endif #if 0 *p3 = 10; //编译错误。 p3 = &b; //编译是错误。#elseprintf("p3 = %d\n", *p3);#endifreturn 0;}int main(void){test();return 0;}

转载请标明出处

http://blog.csdn.net/shaohuazuo/article/details/40316987

免责申明:本栏目所发资料信息部分来自网络,仅供大家学习、交流。我们尊重原创作者和单位,支持正版。若本文侵犯了您的权益,请直接点击提交联系我们,立刻删除!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值