C语言对于常量和变量的语法权限

C语言对于常量和变量,只是语言层面对于程序员权限而已,在内存层面没有很好的保护。可以理解成对于程序员来说,常量(constant)就是只读(only-read)权限,变量是读写(read&write)权限。

#include "stdio.h"

int main()
{
    const int x = 10;        
    
    //const int * xp=&x;
   
    //int* ptr =xp;
    //int* ptr =&x; 
    int* ptr = (int*)&x;  
    *ptr = 20; 
    printf("x=%d",x);

    int y =30;
    const int *yp =&y;
    y=40;

    printf("y=%d",y);

    return 0;
}

Windows下,VScode使用GCC编译,正常输出,随缘报警告,注释部分全都可以编译通过。

这篇博客说C++会不太一样,没试过:

“C++ 中禁止把const char* 型指针变量的内容赋给char *型指针变量(C中会警告),但是char *型指针变量的内容可以赋给const char*型指针变量”

C++中常量指针和普通指针的相互赋值问题_指针不能赋值给指针_Legends_Never_Die的博客-CSDN博客

你可能感兴趣的:(学习笔记,C++,c语言)