c - 如果将常量值赋给 int 指针会发生什么?

标签 c

如果我为 int 指针分配常量值,那么内部会发生什么?

就像,int *p = 5;

如果我有 print *pp ,那么值是多少?为什么?

最佳答案

如果你有

int *p = 5;

您有一个变量p,它指向地址5。该地址很可能没有有效的 int 值。取消引用指针很可能会导致未定义的行为。写入内存很可能会导致崩溃,并且由于它是未对齐读取,因此在某些不允许未对齐读取的系统上也可能会导致崩溃。

这样做在某些情况下有效的,这就是为什么它是被允许的。例如,具有固定内存映射的小型嵌入式系统,其中某些“寄存器”存储在某个固定地址处。然后你可以创建一个指针并使其直接指向该地址。

关于c - 如果将常量值赋给 int 指针会发生什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38430216/

相关文章:

c - c中的结构来存储员工的详细信息并打印那些超过10000的员工

c - 如何从 fopen 到 fopen_s

c - 这个输出是怎么来的?

收集 2 : error: ld returned 1 exit status for

C : struct to json string

c - 释放 C 堆栈并移除悬挂指针

无法将命令行参数读入整数数组 C

C - 如何在 linux 中使用 API 库

c - 在 ncurses 中处理信号

c - 从动态分配的结构中删除和排序元素