zoukankan      html  css  js  c++  java
  • const与指针的使用

     
    • 问题描述:
                C#中的readonly和static以及const的比较和对比分析
    • 问题解决:
      const使用
    如上例我们可以得出如下结论:
    • (1)typedef  定义一个类型的别名(为一个类型取一个新名字),而#define只是简单的字符串替换
    例如
                typedef char * Ptr;
                #define Def char *  (注意这里没有分号的结束符)
                Ptr  s1,s2;
                Def s3,s4;
    上述定义的s1和s2是char *类型,对Def进行字符串替换也就是char *s3,s4;也就是说s3是一个char 指针,s4是一个char类型变量
    • (2)由上面的程序我们可以看出对于*、++是出于同一优先级,但是++放在变量的左边和右边,具体的优先级不一样,具体而言:左边的++ > * >右边的++
    • (3)交换const与变量类型的位置意思是一样的
    如上所示const char * 和char const *含义是一样的!
     
    • (4)const限定的谁是常变量
    上述指出了三种被const修饰的变量的值
    (4.1)指向常量的指针
            const char * value
                -----指针的值可以改变,但是指针指向的值不允许改变
    (4.2)常指针
            char *const value;
                ------指针的值不允许改变,但是指针指向的变量的值允许改变
    (4.3)指向常量的常指针
        const char *const  variable;
            -------指针的值不允许改变,指针指向的变量的值也不允许改变   
    总结:
                一个简单的判断方法:指针运算符*,是从右到左,那么如:char const * pContent,可以理解为char const (* pContent),即* pContent为const,而pContent则是可变的
                const在*的左边,则指针指向的变量的值不可变;在*的右边,则指针的指向不可变。简记为“左定值,右定向”。
  • 相关阅读:
    七天冲刺04
    软件工程概论项目——典型用户场景分析
    七天冲刺3
    七天冲刺2
    七天冲刺1
    第十三周总结
    软件工程概论个人作业02
    第二周学习进度
    软件工程个人作业01--四则运算
    连接数据库的javaee编译简易的WEB登陆界面
  • 原文地址:https://www.cnblogs.com/luosongchao/p/3044834.html
Copyright © 2011-2022 走看看