这是一个关于计算机组成原理的相关问题

我借了几个同学电脑,下载C语言,然后定义指针,看指针变量位数。发现,每台电脑指针地址位数都相同。
然后我想起了计算机组成原理中的一个知识。双字长指令,第二个字长存放的也是地址。之前操作数8位地址可能一下扩展到16位,那么问题来了,假如一台电脑采取双字长指令,那么电脑上C语言的指针地址还是8位,第二个字长地址是不是没有用上?或者说8位表示16位地址,为何没有报错?

c语言和具体的计算机硬件没有什么关系。
如果计算机的指令变化了,c语言的指针就不一样了,c语言还怎么移植呢。

C语言, 要经过编译, 编成可执行文件, 再不同的机器上编出来的指令就是不一样了, 所以一般需要针对不同机器编不同的版本。

比如32位机器环境编译出来 指针应该是4字节
64位机器 环境编译出来指针应该是占8个字节的。

现在的电脑基本都是64位机了。 编译时可以选择编译成64位的 还是 32位(x86) .