int i = 0; /* . . . */ i = 20; /*这里重新赋值了*/
/* . . . */ const int ic =20; /* . . . */ ic = 40; /*这样是不可以的,编译时是无法通过,因为我们不能对const 修饰的ic重新赋值的。*/ /*这样我们的程序就会更早更容易发现问题了。*/ /* . . . */
const int ic = 20;
int const ic = 20;
const int *pi
int const *pi
int *const pi;
#include "stdio.h"
main()
{
/* 代码开始 */
int i1 = 30;
int i2 = 40;
/* 现在 pi 变量的内容为 i1 的内存地址 */
const int *pi = &i1;
/* 注意这里,pi可以在任意时候重新赋值一个新内存地址*/
/* pi 变量的内容为 i2 的内存地址 */
pi = &i2;
/* 想想看:这里能用*pi = 80来代替吗?当然不能!*/
i2 = 80;
printf("%d\n", *pi); /* 输出是80 */
/* 代码结束 */
}
#include "stdio.h"
main()
{
/* 代码开始 */
int i1 = 30;
int i2 = 40;
int *const pi = &i1;
/* pi = &i2; 注意这里,pi不能再这样重新赋值了,即不能再指向另一个新地址。*/
/* 所以我已经注释了它。*/
i1 = 80; /* 想想看:这里能用 *pi = 80; 来代替吗?可以,这里可以通过*pi修改i1的值。(第5行的注释)*/
/* 请自行与前面一个例子比较。 */
printf("%d", *pi); /* 输出是80 */
/* 代码结束 */
}
#include "stdio.h"
main()
{
/* begin */
const int i1 = 40;
int *pi;
pi = &i1; /* 这样可以吗?不行,VC下是编译错。*/
/* const int 类型的i1的地址是不能赋值给指向int 类型地址的指针pi的。否则pi岂不是能修改i1的值了吗!*/
pi = (int *) &i1; /* 这样可以吗?强制类型转换可是C所支持的。*/
/* VC下编译通过,但是仍不能通过 *pi = 80来修改i1的值。去试试吧!看看具体的怎样。*/
/* end */
}
#include "stdio.h"
main()
{
/* begin */
const int i1=40;
const int * pi;
pi=&i1;/* 两个类型相同,可以这样赋值。很显然,i1的值无论是通过pi还是i1都不能修改的。 */
/* end */
}
#include "stdio.h"
main()
{
/* begin */
int i;
const int * const pi=&i; /*你能想象pi能够作什么操作吗?pi值不能改,也不能通过pi修改i的值。因为不管是*pi还是pi都是const的。 */
/* end */
}
机械节能产品生产企业官网模板...
大气智能家居家具装修装饰类企业通用网站模板...
礼品公司网站模板
宽屏简约大气婚纱摄影影楼模板...
蓝白WAP手机综合医院类整站源码(独立后台)...苏ICP备2024110244号-2 苏公网安备32050702011978号 增值电信业务经营许可证编号:苏B2-20251499 | Copyright 2018 - 2025 源码网商城 (www.ymwmall.com) 版权所有