《C和指针》有一段没有看懂
发布网友
发布时间:2022-04-30 07:11
我来回答
共3个回答
热心网友
时间:2022-06-18 22:18
1. yes
2. 输入的字符会先存在缓冲区里面 getchar只是把它读出来然后存到返回值里面 这个过程可以不必管,你可以认为getchar就是读你输入的字符并存到你需要的变量里面
3. 相当于int i = -1; char c; c = i;这样的操作。 c会获取到i的最低8位值
4. 这个情况下是整型降为字符型,字符型如果提升为整型,会保持原来的值
5. 这个\337不知道是从哪里来的,似乎不正确。一般来说,标准C的EOF会定义为-1 也就是0xffffffff 所以应该是读到\377的时候会终止,怀疑\337是\377的笔误
6. 无符号字符集机器,这个说法我也无法理解。没听说过这种机器
个人认为这段程序虽然错误,但不会导致死循环
热心网友
时间:2022-06-18 22:19
1.EOF的值通常是-1,getchar返回的是整形,所以就是 0xFFFFFFFF
2.因为这个语句是先执行 ch=getchar(),当然就由ch来存储-1这个值了
3.32位截断为8位,取的是低地址的8位,也就是0xFF
4.0xff再次被提升到32位还是0xff,高地址加0
5.这个地方不知道是你打错了还是书上印错了,应该是/377,即0xFF
6.不知道无符号字符集的机器是什么机器...
热心网友
时间:2022-06-18 22:19
太长了,建议分开来问。