c28---const

//
//  main.c
//  const关键字,节省内存空间,放在字符表里面,

#include <stdio.h>

int main(int argc, const char * argv[]) {
   
    /*
     1.const,指针类型的左边、数据类型和*号之间,指针的指向可以改变,指向的内存空间中的值不能改变。
     2.const写在指针的右边(数据类型 * const), 那么意味着指针的指向不可以改变, 但是指针指向的存储空间中的值可以改变
     
     规律:
     如果const写在变量名的旁边(int * const p), 那么指针的指向不能变。
     其余,指向的内存空间不能改变。
     */
    
    const char *name = "lnj";
    printf("name = %s
", name);
    name = "lk";
    printf("name = %s
", name);
    
    
    int num = 10;
    int *p = &num;
    const int *p = &num;//内存空间不变(修饰int *,修饰*,意味着存储空间不变)
    int const *p = &num;//内存空间不变(修饰*,意味着存储空间不变)
    int * const p = &num;//变量里的地址值不变,指向不变(修饰变量p,p的地址值不变)
    
    
    *p = 998; // 修改了指针指向的内存空间中存储的值
    printf("&num = %p
", &num);
    printf("p = %p
", p);
    printf("num = %d
", num);
    
    int age = 30;
    p = &age;// 修改了指针的指向
    printf("&age = %p
", &age);
    printf("p = %p
", p);
    
    return 0;
}

void test()
{
    // const对基本数据类型的作用, 可以让基本数据类型的变量变为常量
    // const有两种写法, 1.写在数据类型的左边, 2.写在数据类型的右边(变量名左边)
    const int num = 10;
    int const num = 10;//两种写法一样的,
    printf("num = %i
", num);
    num = 55;
    printf("num = %i
", num);
}
原文地址:https://www.cnblogs.com/yaowen/p/7404413.html