为什么c是一个整形指针,在给c分配了内存之后,最后的c[0]会是一个整数而不是一个指针呢?请详细的解释一下,万分感谢
int * 这个就是定义整形指针。 c分配了长度为3的内存空间,那 它就相当于整形数组 int c[3] , 其中 c[0] 就是 它的第一个整形元素
不知道你这个问题是否已经解决, 如果还没有解决的话:我的理解就是既省时间又省空间
在讲数据类型之前,我们先来看一下计算机里面最小的储存单位是比特,一个比特可以存一个0或1。
计算机是基于二进制的,这是因为人们很容易使用硬件上来控制高低电压(比如用电源和开关,通过开关的状态【开/关】就能控制这条线路上的电压)
如果我们要用计算机去储存一些信息,我们就只能用0和1来表示一些信息。这个时候我们会怎么办呢。
其实我们可以通过制定一些规则来让计算机识别我们输入的信息,比如设定一个具体的数,每次计算机得知这是一些信息的时候,就会去读取这个数那么多的比特来表示信息
举个例子:比如我规定每次读取10位,那么每次计算机识别到具体的数据储存地方就会10个比特读取
0101010100
我们就可以用0101010100来表示这一些信息也就是十进制的154
看到这里,你就会想,对啊,这不就可以表示信息了么,那为什么还要规定这么多的数据类型。
你想,
如果我如果储存的信息只用1个比特就能储存,那我为什么还要读取10位然后在取第1位,我可以直接让计算机读取1个比特来表示这个信息。
而计算机读取是要时间的,所以如果我们规定适当的读取长度,就可以节省时间(读取)和空间(储存)
因此,我们为了方便着想就规定C语言有如下几种数据类型: