zoukankan      html  css  js  c++  java
  • const 与define 创建符号常量的 用法与区别

            一、define 的用法:

                在c语言中我经常会看到 :#define  PI  12 ,这是创建了一个符号常量,这里面要注意没有那个等于号“=”;

           二、const 的用法:

             1、const 也可以来创建符号常量,但是const 的用法比define 在用法方面更加灵活,它可以创建const数组、const 指针、指向const 的指针,

                   const  int RATE = 100; 这里可以看出一个区别,在const 创建的符号常量赋值时有一个“=”,这个不要被忽列掉,不然会出错的;这里举几个例子:

                                    const 数组:const  int days[10]={1,2,3,4,5,6,7,,8,9,10};注意:之后在使用这个数组时,不能修改数组元素的值,例如:days[9]=1000;这将会产生一个错误。

                                     const 指针:double rate[2]={1,2};     

                                                          const  double *pd=rate(创建了一个指向了const的指针pd);             *pd=44(这将产生一个错误),而rate[0]=22(这个是允许的,因为rate未被const限定)

                                                          所以说,指向const 的指针不能用来修改值,但是我们可以让pd指向别处(pd++),也就是指向了rate[1],这个是被允许的;

             2、在const 创建的指针赋值时要注意几点:

                          int  rate[4]={1,2,3,4};

                           const int  tu[4]={5,6,7,8};

                           const int * pc=rate;(这个赋值有效),      pc=tu (有效)  pc=&rate[2](有效)

                           int  * pcc=rate;(有效) ,pcc=tu(这个赋值无效),pcc=&rate[2];(有效);

                          所以说,把const 数据或非const 数据的地址初始化为指向const 的指针或为其赋值是合法的,不能把const数据地址赋给普通指针;

              3、const 的其它用法:

                    声明一个不能指向别处的指针,注意const 的位置就可以了:   

                                double rate[4]={1.2,1.3,1.4,1.5}

                                double *const pc =rare;

                                pc=&rate[3](这个是不被允许的)

                               *pc=22.44(这个修改值是被允许的,但是只能修改第一个值,也就是初始化那个地址上的值)

                   创建指针的时候,可以使用两次const,该指针既不能修改它指向的地址,也不能修改指向地址上的值:

                                                  double rate[4]={2.3,5.6,7.8,8.9}

                                                  const double * const pc =rate;

                                                   pc=&rate[2](这个不允许指向别处)

                                                   *pc=86.3(这个也不被允许修改数组中的值)

                                

                  说了这么多,总结一下:

                      在运用const 的时候,关键是注意它在那个位置上,在不同位置上有不同的用法,而且在赋值时,类型要对头,不能把const 的数据赋值给非cosnt 数据,但是可以让非const 数据赋值给const数据。

     

               

  • 相关阅读:
    Jquery第一篇【介绍Jquery、回顾JavaScript代码、JS对象与JQ对象的区别】
    将数据转成JSON
    AJAX多级下拉联动【JSON】
    AJAX验证码检查
    生成验证码JSP【复用代码】
    AJAX二级下拉联动【XML方式】
    JavaScript总体的介绍【JavaScript介绍、定义函数方式、对象类型、变量类型】
    企业人事管理系统
    java.lang.IllegalArgumentException: node to traverse cannot be null!
    复用代码【SSH配置文件】
  • 原文地址:https://www.cnblogs.com/1121518wo/p/10583952.html
Copyright © 2011-2022 走看看