变量类型的基础理解

在内存中存储的变量是没有类型的,只有一串的0和1,甚至长度都没有。所以汇编编程里面,就需要实际控制内存如何寻址,以及寻多长的数据。
c里面为了简化开发难度,引入了变量的概念。变量会通过不同的形式来规定存储的长度,以及如何解释这些变量。

字符 char,规定长度是一个字节,那范围只能是0-256,对应着我们常说的ASCII码 字符串 char *name=”xxx”,因为是变长的,所以引入一个概念,只有最后一个字节的值是0,则代表字符串结束 整型 int,规定长度是两个字节 长整型 long, 规定长度是4个字节

综上所述, 变量类型只是告诉我们如何从内存中读取数据并展现,要么读取指定长度的内容,要么是一直读取到值为0的字节停止。

虽然变量有上面这么多的形式,但也只是给那堆0和1加一层容易识别和使用的壳,其内部的数据是没有任何区别和变化的。
比如内存中的0100 0001,以char读取出来就是A,以int读取出来就是65。

.|下面的代码输出什么结果?

  1. #include <stdio.h>
  2. int main(int argc, char *argv){
  3. char i = 'A';
  4. int k = 2;
  5. printf(">>>>>1: %d \n", i);
  6. printf(">>>>>1: %d \n", i * k);
  7. }

.|下面是具体的输出结果:
>>>>>1: 65
>>>>>1: 130
所谓的

真值类型:true false

.|c语言里面0代表的是true还是false?
.|falsle.+

.|c语言里面不等于0的数字(正数或者负数),代表的是true还是false?
.|true.+

.|下面代码的输出结果是什么?

  1. #include <stdio.h>
  2. int main(){
  3. int d=-3;
  4. if(d) {
  5. printf("true");
  6. }else{
  7. printf("false");
  8. }
  9. return 3;
  10. }

.|输出为true,因为只要数字不等于0,结果就是true。.+