c - C 编程中覆盖寄存器 int 失败

标签 c memory int

我想知道为什么寄存器整数的值是a不被覆盖:

#include <stdio.h>
#include <conio.h>

main()
{
    register int a=10;
    {
        register int a=30;
    }
    printf("%d",a);
    getch();
}

为什么不是 a 的值被覆盖?输出显示 10 .

最佳答案

您在新作用域中重新声明变量。这两个 a: 是不同的。

尝试以下操作:

int main()
{
    register int a=10;
    {
       a=30;
    }
    printf("%d",a);
    getch();
}

关于c - C 编程中覆盖寄存器 int 失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12844446/

相关文章:

c - 有一个结构变量代表标签

c - 释放使用 malloc 创建的结构,其成员也有一个 malloc

c++ - 如何减少将矩阵传递给函数的开销?

matlab - 矩阵的值在其边缘周围平滑地下降到零

java - 按位或未产生预期结果

c - 使用 FFmpeg libavformat 录制 RTSP 流

c - 栈内存是在运行时分配的还是编译时分配的?

c# - 列表框转换为数组 int

c - 将指针分配给C中的枚举变量时出现问题

将 'Sat, 24 Nov 2018 00:34:57 GMT' 用 C 转换为毫秒