gpt4 book ai didi

c - while 循环意外(字符到 int 的转换)

转载 作者:太空宇宙 更新时间:2023-11-04 06:28:54 24 4
gpt4 key购买 nike

#include<stdio.h>
main()
char i=13;
while(i)
{
i++;
}
printf("%d",i);
}

输出结果为零。怎么会这样

#include<stdio.h>
main()
char i=48;
if(i)
{
printf("%d",i);
}
}

此程序成功运行并打印 48。我不认为它应该失败的字符 o。我如何作为字符或数字存储在内存中

最佳答案

'main()' 后缺少括号。您的第一个代码实际上一直从 13 开始计数,直到达到 127(如果在您的系统上,字符表示为有符号整数),因为这是此类系统中字符的最大正整数;然后翻转到 -128 并一直计数到 0。在 0 时,退出循环并打印结果。要想象会发生什么,请复制并尝试一下:

#include <stdio.h>

int main()
{
char i=13;
while(i){
i++;
printf("%d ", i);
}

printf("\n%d",i);
}

输出:

14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 57 65 54 5 51 52 57 65 54 5 61 62 63 64 65 66 66 67 69 70 71 72 73 73 74 74 75 76 77 77 78 79 80 81 82 83 84 84 85 86 86 87 87 87 88 89 90 90 91 92 93 94 94 95 96 97 99 99 99 99 1001 101 101 102 102 102 102 105 105 105 105 105 107 107 107 109 109 109 108 109 109 109 109 109 109 109 109 109 109 109 109 109 109 109 109 109 109 109 109 109 109 109 108 108 108 108 108 108 108 108 109 109 1108 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 -128 -127 -126 -125 -124 -123 -122 -121 -120 -119 -118 -117 -116 -115 -1 112 -111 -110 -109 -108 -107 -106 -105 -104 -103 -102 -101 -100 -99 -98 -97 -96 -95 -94 -93 -92 -91 -90 -89 -88 - 87 -86 -85 -84 -83 -82 -81 -80 -79 -78 -77 -76 -75 -74 -73 -72 -71 -70 -69 -68 -67 -66 -65 -64 -63 - 62 -61 -60 -59 -58 -57 -56 -55 -54 -53 -52 -51 -50 -49 -48 -47 -46 -45 -44 -43 -42 -41 -40 -39 -38 - 37 -36 -35 -34 -33 -32 -31 -30 -29 -28 -27 -26 -25 -24 -23 -22 -21 -20 -19 -18 -17 -16 -15 -14 -13 - 12 -11 -10 -9 -8 -7 -6 -5 -4 -3 -2 -1 0

从正面到负面的变化与计算机上整数的 IEEE 表示法有关。如果你用谷歌搜索,你可以在 SO 上找到许多相关问题。

关于c - while 循环意外(字符到 int 的转换),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22868731/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com