C语言day10-12const关键字

pragma mark const关键字

pragma mark 概念

/*
 如果const 写在指针类型的左边, 那么意味着   指向的内存空间的值不能改变   ,但是指针的指向是可以改变
 如果const 写在指针的数据类型和 * 号之间, 那么意味着   指向的内存空间的值不能改变  ,但是指针的指向是可以改变
     const int *p = #
    int const *p = num;
    
 如果const 写在指针的右边 (数据类型 * const), 那么意味着 指针的指向不可以改变   ,但是指向指针的存储空间中的值可以改变
     int * const p =  #
 
 规律:
 如果const 写在指针变量名的旁边,那么指针的指向不能变,而指向的内存空间的值可以变 (说明修饰的是p 修饰了指针的指向 所以指针的指向不能变)
 如果const 写在数据类型的左边或者右边, 那么指针的指向可以改变, 但是指向的内存空间的值 不能改变  (说明修饰的是 * 所有*xx 不能变)
 */

pragma mark 代码

#include <stdio.h>
int main()
{

    /*
    const char *name = "lyh";
    printf("name = %s\n",name);
    name = "lys";
    printf("name = %s\n",name);
     */
    
    int num = 10;
    int *p = #
//    const int *p = #
//    int const *p = num;
//    int * const p =  #
    *p = 998;   // 修改了指针指向的内存空间中存储的值
    printf("&num = %p\n",&num);
    printf("p = %p\n",p);
    printf("num = %d\n",num);

    int age = 30;
    p = &age;   // 修改了指针的指向
    printf("&age = %p\n",&age);
    printf("p = %p\n",p);
    return 0;
}

void test()
{
#warning const对变量只读不可写 const的写法
    
    //默认情况下 变量是可读可写的
    //const 对基本数据类型的作用,可以让基本数据类型的变量变为常量
#warning const 的写法
    // const 有两种写法 1.写在数据类型的左边 2.写在数据类型的右边
    //    const int num = 10; // 当变量加上了 const 说明改变量只读
    
    int const num = 10; // 当变量加上了 const 说明改变量只读
    printf("num = %i\n",num);
    
    //    num = 55;
    printf("num = %i\n",num);
}

    原文作者:liyuhong165
    原文地址: https://www.jianshu.com/p/20360d682748
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞