zoukankan      html  css  js  c++  java
  • c语言 const 关键字和指针结合

    #include <stdio.h>
    #include <stdlib.h>
    
    int main()
    {
        //printf("Hello world!
    ");
        char a[] = "Hello";
        char b[] = "World";
        const char *p1 = a;
        char *const p2 = a;     //创建指针 p2 的时候就需要初始化,如果声明(或定义)之后再对其赋值会出现错误
        char const *p3 = a;
    
        //p1[0] = 'X';      //error, read-only location *p1
        p1 = b;             //No error when compiled
        printf("%c
    ", *p1);
    
        p2[0] = 'X';        //No error
        //p2 = b;           //error, read-only variable p2
        printf("%c
    ", *p2);
    
        p3 = b;
        //p3[0] = 'X';        //error, read-only location *p3
        printf("%c
    ", *p3);
    
        /*
        a[0] = 'X';
        printf("%s
    ", a);
        printf("%c
    ", *p1);
        //p2 = b;       //error: assignment of read-only variable 'p2'
        p2[0] = 'X';
        printf("%s
    ", a);
        //printf("")
        //p1[0] = 'H';   //这一句会出现编译错误
        a[0] = 'H';     //这一句不会出现错误
        printf("%s
    ", a);
        return 0;
        */
        return 0;
    }


    /*
    总结:
    const char * 与 char const *是一样的效果,即指针指向的内容是只读的
    char *const 表示指针的内容是只读的,即指针指向的位置是不可修改的,但是指针指向的内存是可读可写的
    const char *const pointer 兼有上面两种,即指针指向的位置不可修改,并且指针指向的内容也不能修改
    char *const const pointer 与 const char *const pointer 效果相同
    主要是看const关键字修饰的是什么
    */

  • 相关阅读:
    python基础——单元测试
    python基础——调试
    python基础——错误处理
    python基础——使用元类
    python基础——多重继承
    python基础——使用@property
    sql server 2000的安装
    [转载]目前流行的缺陷管理工具
    个人工作中ssd、audio python脚本总结
    python Synchronization between processes
  • 原文地址:https://www.cnblogs.com/rocklee25/p/6533300.html
Copyright © 2011-2022 走看看