c - 为什么下面的程序没有报错?

标签 c constants

#include<stdio.h>
void main ()
{
     int a=4;
     const int *p=&a; 
     *p--;      
}

在上面这行它意味着我们不能通过p改变a的值,所以在递减语句中它应该给出一个错误但它并没有给出错误。谁能解释为什么??

最佳答案

*p-- 递减 p 而不是 p 的内容。

如果你这样做 (*p)-- 你会得到编译错误

error: decrement of read-only location ‘*p’

关于c - 为什么下面的程序没有报错?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29819106/

相关文章:

c++ - GNU 链接器如何决定需要哪些 C/C++ 库文件?

C - 指向返回字符串的函数的指针的函数指针数组

c - 将函数中声明的局部数组传递给另一个函数

c++ - 为实例变量(即对象)调用 getter 函数时实际发生了什么?

代码似乎无法正确打印连接的字符串

c++ - 如何使用 openAL 从麦克风将实时音频输入记录到文件中? (里面的C++代码)

c - 在 C 中#ifdef 中定义常量

javascript - 什么是暂时死区?

c++ - 我可以提供对 OpenCV 矩阵的只读访问吗?

c - OpenSSL 中的 const 难题