变量类型的基础理解
在内存中存储的变量是没有类型的,只有一串的0和1,甚至长度都没有。所以汇编编程里面,就需要实际控制内存如何寻址,以及寻多长的数据。
c里面为了简化开发难度,引入了变量的概念。变量会通过不同的形式来规定存储的长度,以及如何解释这些变量。
字符 char,规定长度是一个字节,那范围只能是0-256,对应着我们常说的ASCII码 字符串 char *name=”xxx”,因为是变长的,所以引入一个概念,只有最后一个字节的值是0,则代表字符串结束 整型 int,规定长度是两个字节 长整型 long, 规定长度是4个字节
综上所述, 变量类型只是告诉我们如何从内存中读取数据并展现,要么读取指定长度的内容,要么是一直读取到值为0的字节停止。
虽然变量有上面这么多的形式,但也只是给那堆0和1加一层容易识别和使用的壳,其内部的数据是没有任何区别和变化的。
比如内存中的0100 0001,以char读取出来就是A,以int读取出来就是65。
.|下面的代码输出什么结果?
#include <stdio.h>int main(int argc, char *argv){char i = 'A';int k = 2;printf(">>>>>1: %d \n", i);printf(">>>>>1: %d \n", i * k);}
.|下面是具体的输出结果:
>>>>>1: 65
>>>>>1: 130
所谓的
真值类型:true false
.|c语言里面0代表的是true还是false?
.|falsle.+
.|c语言里面不等于0的数字(正数或者负数),代表的是true还是false?
.|true.+
.|下面代码的输出结果是什么?
#include <stdio.h>int main(){int d=-3;if(d) {printf("true");}else{printf("false");}return 3;}
.|输出为true,因为只要数字不等于0,结果就是true。.+
