const的世界

原创 2018年04月15日 00:36:08
一、初识 const
 定义常变量不能写,只能读
 const int ca = 100; //只读
 const int cb;       //error要初始化,否则为任意值
                ca = 100; //不能再次赋值,因为不可以改变
二、了解 const
   (1)用来修饰变量,数据类型对于 const 而言是透明的
     1 类型 2 * 3 变量  其中1与2是等价的 const int(或者 int const 都可以),数字为放const的不同位置      
     const int  *cp = &a;
                 cp = &b;   //right
       *cp = 200; //error
    解:因为const修饰的是变量*cp的,所以*cp的内容是不可以改变的,而cp不受限制,就可以改变。
   (2)用来封锁直接修饰的内容,将改内容变成只读
     int  * const cp1 = &a;
               cp1 = &b; //error
              *cp1 = 200;//right
    解:同理,但这次const 修饰的是cp1,因此cp1的内容不可以改变,*cp1可以改变,不受限制。
   (3)扩充,但是太复杂,了解就好,不必深究
     int const * const ccp = &a;
                    ccp = &b   //error
       *ccp = 200;//error
     解:都错误个人理解是因为前面的const修饰的是*cpp,而后面的const修饰的是cpp,因此两者都不可以改变。
三,深交
   权力等同传递,不可以扩大,能缩小
     int      a = 10; //读 写
     int      b = 10;//读 写
    const ca = 10;//读
    const cb = 20;//读

     int *p = &a; //right p指向a是地址,a是自由的,无限制
            p = &ca;//不可以,因为如果对的话,*p就会改变ca的值,ca只可以读
   const int *cp1 = &a; //right a是自由的
                    cp1 = &b; //right const修饰的是*cp1
                    cp1 = &ca;//right cp1是自由的,哪怕加了*号,*cp1也是无法改变的,改变不了只能读的ca的值
   const int *cp2 = &ca;//right cp2指向ca的地址
   int * const cp3 = &a;//right cp3指向自由a的地址
   int * const cp4 = &ca;//error 与p = &ca原因一样,加个*号就可以改变ca的值,因此不可以

   const int * const cp5 = &a;
   const int * const cp6 = &ca;
   两者定义是对的,但是都不可以改变它们的值和地址,上面有说明
四、实践
(1)字符串的拷贝
#include <stdio.h>
void  Mystrcpy(char *des,const char *str) //const 为了使str不能改变
{
  int i;
  for(i = 0;str[i] != '\0';i++)
  {
   des[i] = str[i];
  }
   des[i] = '\0';
   printf("%s\n",des);
}
int main()
{
 char str[]={"asdf"};
 char des[10];
 Mystrcpy(des,str);
}
(2)字符的长度
#include <stdio.h>
#include <assert.h>
int Mystrlen(const char *str)
{
 int i=0;
 assert(str != NULL);
 if(str == NULL)
  return 0;
 
 while(*str != '\0')
 {
  i++;
  str++;
 }
 return i;
}
int main()
{
 char *str={"sdghj"};
 printf("%d\n",Mystrlen(str));
 return 0;
}

走进Scratch图形化编程世界

信息社会,编程就和传统的“读、写、算”一样,是一种必备的基本能力,而这种能力可以从儿童编程开始。本课程属于Scratch入门基础课程,不需要任何基础。该课程第一部分介绍Scratch基础知识,第二部分以老虎机为例,应用基础知识来编程,第三编程介绍如何将作品分享及发布。
  • 2017年05月08日 22:09

Const,Const函数,Const变量,函数后面的Const.txt

  • 2011年06月11日 13:44
  • 4KB
  • 下载

const_div const div cost div

  • 2010年04月16日 16:13
  • 2KB
  • 下载

基于web房产信息管理系统

  • 2009年01月07日 16:28
  • 905KB
  • 下载

const 用法总结.

  • 2008年08月27日 13:28
  • 22KB
  • 下载

asp网站集锦你肯定喜欢

  • 2009年12月19日 14:09
  • 2KB
  • 下载

深入理解const 与指针

  • 2012年08月26日 15:59
  • 21KB
  • 下载

const 指针

  • 2013年03月08日 22:30
  • 4KB
  • 下载

【图书】CSS世界

前言临下班,又在朋友圈看到一本2018年前端必读的图书了,那就是张鑫旭的《CSS世界》。前言CSS世界作者: 张鑫旭,前端开发工程师,国内知名前端博客“鑫空间-鑫生活”博主,目前就职于阅文集团用户体验...
  • wGL3k77y9fR1k61T1aS
  • wGL3k77y9fR1k61T1aS
  • 2017-12-26 00:00:00
  • 1667

关于static的说法

  • 2011年10月21日 09:13
  • 1KB
  • 下载
收藏助手
不良信息举报
您举报文章:const的世界
举报原因:
原因补充:

(最多只允许输入30个字)