C语言补习班之const

const定义变量

const int a=100;
a=200;//这样是错误的,因为常量不能修改
int const a=100 与const int a=100相同,都是定义常量,不能修改a的值,也就是说修辞变量成常量

const修饰函数参数(这个参数不能动)

//因为被const修饰变成常量,所以不能进行++,所以错误
void func(const int temp)
{
    temp++;
    
}
//因为常量temp得值给了a所以可以a++
void func(const int temp)
{
    int a=temp;
    a++;
    
}

const修辞指针

常量指针

         const在*左侧为常量指针

        表示修饰的是这个指针指向的内容不允许修改,这个指针的地址可以改变 常量指针

       常量指针无法改变指针指向内容得值,可以改变指针指向,如果要改变指针指向内容就通过这个内容变量进行更改

常量指针就是没办法通过指针修改指向的内容,其他与指针没有区别

//常量指针
const *int a;
int const *a;

#include <stdio.h>
int main()
{
  int a,b;
  a=5;
  const int *p=&a; //常量指针
//一下改变a中的内容为6, 如果不加const以下两中都可
 //*p=6; //这样是错误的,就是指向常量的指针,不可以通过指针进行改变值

  
  a=6;//这样是正确的指针无法取改变这个值,但是通过变量可以改变
  printf("%d\n",*p);
  return 0;
}

        常量指针修改指向

#include <stdio.h>
int main()
{
  int a,b;
  a=5;
  b=6;
  const int *p=&a; //常量指针
  //修改常量指针的指向
  //常量指针就是没办法通过指针进行修改其中的内容,其他指针没区别
  p=&b;
  printf("%d\n",*p);
  //输出为6
  return 0;
}

指针常量

        const在*右侧为指针常量,表示这个指针指向的地址没办法更改,指针指向地址的内容可以改变,也就是说这个指针只能指向这个空间。

#include <stdio.h>
int main()
{
  int a,b;
  a=5;
  b=6;
  int *const p=&a; //常量指针
  //修改常量指针的指向
  //常量指针就是没办法通过指针进行修改其中的内容,其他指针没区别
  p=&b;//这样是错误的因为p是常量,没办法修改
  *p=6;//这样是可以的
  printf("%d\n",*p);
  //输出为6
  return 0;
}

总结:

常量指针,没办法通过指针改变指向地址的内容,可以改变指针的指向,const在*左侧

指针常量,没办法通过指针改变指向地址,可以改变指向地址的内容,const在*右侧

巧计指针常量   *(指针)const(常量)

        常量指针 const(常量)*(指针)

const int *const p 表示指针的地址不可以修改,内容也不可以修改。

在C++类中有常函数的概念,比如在类中定义如下函数:

Void fun() const {  }

像这种就是常函数,这种函数只能读取类中数据,不能修改

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值