C中常变量 const的应用

const int a=3

      表示a被定义为一个整型变量,指定其值为3,而且在变量存在期间其值不能改变。

     常变量与常量的异同是:常变量具有变量的基本属性:有类型,站存储单元,只是不允许改变其值。可以说,常变量是有名字的不变量。有名字便于在程序中被引用。

const:

int a=10;//a 可读可写

int b;

b=a;// a 的读权限

a=20;//a 的写权限,左值,放在赋值符号的左边

(1)定义常变量,将变量变成只读。

(2)数据类型对于const来说是透明的。

const int ca=10;

ca=10;//报错

 int  const cb=10;

cb=10;//报错

以上两种情况是因为const把数据类型视为透明,因此将ca,cb变成只读。

(3)const 与指针,const修饰它的直接右边。

const 与指针的位置

【1】数据类型【2】*【3】变量名

int a=10;int b=20;

const int*p1=&a;

p1=&b;//可以,因为const修饰的是它的直接右边,即*

*p1=200//不可以

int const *p2=&a;

p2=&b;//可以

*p2=&b;//不可以

int*const p3=&a;

p3=&b//不可以

*p3=&b;//可以

const int*const p4=&a;

*p4=&b;//不可以

p4=&b;//不可以

(4)权限可以同等或者缩小传递,但不能扩大传递

inta=10;int b=20;

const int ca=10;

const int cb=20'

int *p=&a; p=&b;

p=&ca//错误,*p=100可以,因此p= &ca 的值会被间接修改,因此不行。

const int *p1=&a;

p1=&ca;//可以,因为*p=100不可以,因此p1=& ca 的值不会被改变因此可以。

int *const p3=&ca;//不可以

 

认识断言

 

aessert  :断言,表达一定为真,为假时程序崩溃,有断言时,会报告崩溃情况和位置。

 

if 于断言往往同时出现。

 

两者位置不能互换,assert在前,if在后。

 

例:#include <stdio.h>

 

      #include  <aessert.h>-------》reslease版本,代码正确不用时,自己消失掉。

  int    Div(inta,int b)  

 {

        return a/b;

}

int main ( )

{

       aessert(b!=0);

       if(b==0)

{  

       return 0;  

}

       printf("%d\n",Div(10,20));

       return 0;

}

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值