C, %u代表什么
代表无符号整数是不是我定义a=-1,输出是调用%u,输出的结果是1呢?
我运行出来是一个很大的数
人气:468 ℃ 时间:2020-03-29 11:07:18
解答
目前的编译器一般int为32位的,所以-1用%u输出为4294967295,如果你是这样写的unsigned a=-1;其实是两步,第一步:unsigned a;第二步:a=-1;因为a为unsigned型的,所以-1会先强制转换为unsigned型,-1在内存中是1111111111111111111111111111111共32个1,因为按%u读取,所以为2^32-1=4294967295
推荐
猜你喜欢