const_C/C++_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > C/C++ > const

const

 2010/12/23 8:03:25  asran  http://asran.javaeye.com  我要评论(0)
  • 摘要:Therearetwotypeofconst:1.constint*p;<-----pointer'p'isnotconst,whiletowhatitpointsisconst.e.g.:inti;constintci=5;constint*p;p=&i;p=&ci;*p=10;//errorhere2.int*constcp;<-----thepointer'cp'isconst,youcan'treassignvalueto'cp'twice.e.g.
  • 标签:

There are two type of const:

1. const int ?*p; ?<----- pointer 'p' is not const, while to what it points is const.
e.g.:

int i;

const int ci = 5;

const int *p;

p = &i;

p = &ci;

*p = 10; // error here

?

2. int *const cp; <----- the pointer 'cp' is const, you can't reassign value to 'cp' twice.

e.g.:

int i;

int j;

int *const cp = &i;

*cp = 3;

*cp = 4;

cp = &j; // error here

?

together:

const.c

??1 #include<stdio.h>

??2 #include<stdlib.h>

??3 void main()

??4 {

??5 ? ? ? ? int i = 5;

??6 ? ? ? ? int j = 7;

??7 ? ? ? ? const int ci = 4;

??8 ? ? ? ? const int *p;

??9 ? ? ? ? int *const cp = &j;

?10 ? ? ? ??const int *const cp1 = &ci;?// both pointer and what it points to are const.

?11 ? ? ? ? p = &ci;

?12 ? ? ? ? p = &i;

?13 ? ? ? ? printf("*p=%d\n", *p);

?14 ? ? ? ? printf("*cp=%d\n", *cp);

?15 ? ? ? ? printf("*cp1=%d\n", *cp1);

?16 ? ? ? ? const int **pp;

?17 ? ? ? ? pp = &p;

?18 ? ? ? ? printf("**pp=%d\n", **pp);

?19 ? ? ? ? const int *const *const cpp = &cp1;

?20 ? ? ? ? printf("**cpp=%d\n", **cpp);

?21 ? ? ? ? exit(EXIT_SUCCESS);

?22 }


上一篇: VC多线程编程(转) 下一篇: TabPage_today3
  • 相关文章
发表评论
用户名: 匿名