如果我为 int 指针分配常量值,那么内部会发生什么?
就像,int *p = 5;
如果我有 print *p 和 p ,那么值是多少?为什么?
最佳答案
如果你有
int *p = 5;
您有一个变量p
,它指向地址5
。该地址很可能没有有效的 int
值。取消引用指针很可能会导致未定义的行为。写入内存很可能会导致崩溃,并且由于它是未对齐读取,因此在某些不允许未对齐读取的系统上也可能会导致崩溃。
这样做在某些情况下是有效的,这就是为什么它是被允许的。例如,具有固定内存映射的小型嵌入式系统,其中某些“寄存器”存储在某个固定地址处。然后你可以创建一个指针并使其直接指向该地址。
关于c - 如果将常量值赋给 int 指针会发生什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38430216/