全新新手问C语言基础
自学C语言 在百度的海洋里摸爬滚打了几天 有几个地方不太好理解 希望懂的人解答一下 另鉴于C语言会用的人很多 但是基础概念清晰的少 或者说我经常看见百度贴吧很多不同的解答吧(确实这地方有点水) 希望真的明白的再回答 谢谢
1 字符一般被认为是使用8位的储存空间(不看汉字的话)吧 但是常量(字面量?)的字符说是使用int类型的数据对象来储存的 那么我想问下 这么说的话 字符岂不是16位或者32位了吗?两者谁能帮助我分析一下具体两个情况是
2 计算机自然字的大小 是CPU的位宽 还是CPU计算浮点数的最大位数 还是计算机的位 还是计算机硬件这种范范的东西来决定的?
3 我对代码和意义有如下理解 希望能帮助我理解和改正
我为了方便先假设一个数据类型int有8位 那么它的代码 应该是00000000至11111111这么256种组合 代码是二进制的 可以根据二进制原则得出“代码本身的值”----0至255 但是数据类型如果是有符号类型 真正的取值范围就是-128至127 如果是无符号类型 真正的取值范围就是0至255 到这里对吧 那么我就得出代码"本身的值"(00000000至11111111的值)----0至255是否只是数据对象中组合方式的编号 并不能体现出代码“意义的值”呢 比如说输入-127 但是代码肯定不是-127(或者127的二进制形式)吧
那么既然得出了这个结论 我对字符的理解出现了歧义 这里我指的是在运行中的字符 比如'A' 我听说字符实际储存的是整数的值 还有字符A其”码值“是65 那么到了这里结合上文 我想问
'A'的代码"本身的值"(好像前面说的-127的代码本身的值)是不是与65没关系? 但是代码“意义的值”(好像前面说到的-127)是65? 也就是说原理和储存常量65一样 只不过在显示的时候再根据编码方式还原成字符 比储存常量多了一步
还是说'A'的代码"本身的值"按照十进制的形式写出来就是65 但是代码没有”意义的值“ 有的是”意义的字符“ 就是说代码的意义直接就是字符 所谓储存的是整数的值其实是指代码本身的值是65?最后一个问题说的有点麻烦 望不吝赐教 谢过