C语言之const

C语言之const

const修饰全局变量

此时全局变量只能使用但是不能修改,
如果直接拿全局变量修改值,编译直接报错
C语言之const_第1张图片

如果使用全局变量的地址修改值,运行时程序异常结束

C语言之const_第2张图片

const修饰普通局部变量

可以读取变量的值
不能直接通过变量进行修改值,编译报错
C语言之const_第3张图片

可以通过变量的地址修改值
C语言之const_第4张图片

const修饰指针变量

#include 

void test1(void)
{
    int a = 100;

    int *p;
    p = &a;

    //改变*p的值有三种方式
    a = 200;
    printf("a=%d\n",*p);

    *p = 300;
    printf("a=%d\n",*p);

    int b = 400;
    p = &b;
    printf("a=%d\n",*p);
}

int main()
{
    test1();

    return 0;
}

C语言之const_第5张图片

如果const修饰指针变量的类型,无法通过指针变量修改地址里面的值
C语言之const_第6张图片

如果const修饰指针变量,无法修改指针变量保存的地址
C语言之const_第7张图片

如果const既修饰指针变量的类型,又修饰指针变量,则只能通过原本变量修改值
C语言之const_第8张图片

你可能感兴趣的:(C语言,c语言,开发语言)