C如何打印一个超过int范围值的数?

就比如int i = 100000000000000000;
如何打印出来?

超出了范围,你都不能赋值了,还考虑打印。
C,只是语言,int 能存多大的数值要看使用它的平台。例如:Dos 时 int 是两个字节,但 Windows 平台下就是 4 个字节的。明显可存贮的数值大了很多。
在 Windows 平台下还有很多更大的数值类型,如:LONGLONG,64位整数分别叫做__int64与unsigned __int64,范围为 -2^63 (-9,223,372,036,854,775,808) 到 2^63-1 (9,223,372,036,854,775,807),存储空间占 8 字节。

那你不能用long类型的吗?

如果回答对您有帮助,请采纳

这个是不能直接以整型形式打印的,把这个数当成字符串,或者把每一位当成数组的一个元素,逐个打印。

printf("1000000000000000");

直接转换成字符串不就可以正常打印了么?

三种方法吧。
一,使用长整型 long int 来赋值,那么可以直接输出。
二,使用数组来逐位输出。
三,使用字符串型来输出。

结构体内可以将内存分的很小,定义一个结构体,里面用变量代替数据的低位和高位,这点可以判断数据储存是大端还是小端,我记得结构体内可以操作到比特位的,不好意思,主要是时间有点长遗忘了,