C语言中const关键字学习

1. 指向const指针

  const int* u;//u是一个指针,它指向一个const int, 它所指的值是不能改变的。

还可以定义为int const * v; 但第一种定义更加规范

 

const int *u;
 int j = 1;
 u = &j;
 *u = 9;//编译期间错误,指向一个const int ,其值是不能被修改的
 int k =2;
 u = &k;//编译期间没有错误,指针本身是可以改变的

 

2. const 指针

int d =1;
int * const w = &d; // w是一个指针,这个指针是指向int的const指针,指针本身现在是const指针,编译器要求给它一个初始值,这个值在指针生命期间内不变,然而可以改变它所指向的值
*w=2//编译期间没有错误,指向的内容是可以改变的
 w = &j;//编译期间错误,是一个const指针,指针是不能改变的

 

3. 一个const指针指向一个const对象

int d =1;

const int * const x = &d;

int const * const x2 = &d;

指针本身和指针指向的内容都不可以修改

 

4. 传递const值

void f1(const int i)

{

    i++//编译期间发生错误

}

 

void f2(int ic)

{

   const int /& i = ic;

   i++; //编译期间发生错误
}

 

5. 返回const值

 const int f4(){return 1;}

 

6 传递和返回地址

const char * v()

{

  char * p ="dddd";
  return p;

}

 

调用:

const char * p = v();

cout<<p<<endl;

 

 int *  const getConstPoint()
{
 static int i=44;
 return &i;
}

 

const int * getConstPoint1()

{

   static int i=44;
   return &i;
}

 

调用:

 int * const p1 = getConstPoint();

 const int * p2 = getConstPoint1();

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值