c语言 什么是类型?什么是基类型? 初学,求帮忙!!

如题所述

在你这里说的话,double*是一个类型,就是说,d是一个double类型的指针,指针。d保存的是double数组的首地址,指针d指向这个数组。说了double的指针,表明指针,他的父亲就是double啦。就是所谓的基类型。double其实也是一个类型,基类型的话,应该要结合实际情况去看才行。
&是取地址的意思,原来说了d是保存数组首地址的,&d就是保存数组首地址的地址。这个地址里面的值也是一个地址,这个地址指向那个数组。*,这个符号就是一个,怎么说呢,就是取得地址里面的值,比如&d是保存数组首地址的地址,那么我对这个地址进行*操作:*(&d),那么得到的就是数组的地址了,把&d看做为一个变量,里面保存的是一个地址,那么就是说*就是把变量的保存的值作为一个变量,取出这个变量保存的值。
不知道你看不看的懂,指针是c++的精髓。多看看书吧追问

亲,能看下这两个吗?

追答

看不清楚嘞
(1)pf[0]和a[0],这两个应该要用到内存中保存的二进制来解释了。
a[0]整型应该保存为:00000000 00000000 00000000 00001010
当解析为单浮点数时,那个数太小了,是0.000000几了,只能用0来表示了。应该是这样的

浮点数保存的字节格式如下:
地址 +0 +1 +2 +3
内容 SEEE EEEE EMMM MMMM MMMM MMMM MMMM MMMM
这里
S 代表符号位,1是负,0是正
E 偏移127的幂,二进制阶码=(EEEEEEEE)-127。
M 24位的尾数保存在23位中,只存储23位,最高位固定为1。此方法用最较少的位数实现了
较高的有效位数,提高了精度。
参考:http://blog.csdn.net/djsl6071/article/details/1531336

(2)实在看不清

追问

亲,这回看清了吗?

追答

(1)%g:自动转换%f或者%e的,如果数字太小,比如小于1/10000时,可能就会写成1.0e-4之类的;或者是超过6位数还是7位数的时候。这个你自己可以度一下。
(2) 执行之前,就是执行pi[0]=17;和pi[1]=29;之前。执行之前,内存中数组保存的数据还是原来那样,就是图5.5(a)所示的。
(3)从何而来?你要先知道double需要多少字节,int需要多少字节保存数据。double用8个字节,int用4个。当你执行pi[0]=17;和pi[1]=29;之后,这两个都是int,占4位,写进内存的时候,都放在了double数组的前8位中,就是d[0]中,如(b)所示。看到的是以int的形式去看,当你以double去解析时,d[0]就是6.15379e-313

看不懂在问

温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-10-28
类型可以通俗的理解为分类,不同的种类的东东西就对应于不同的类型,数据类型只是为了高数编译器要执行哪一类的操作,比如说,整数对应的数据类型就是整型,当你写了几行代码为 int i=0;i=i+1;那么计算机就把i识别为整型,执行加法操作,得到i的结果为i=0+1=1;
第2个回答  2013-10-29
不用想得那么复杂,你是过于钻牛角尖了。
这个书上已经写得明白,类型是一种分类,基类型就是基础是什么类型。

其实学习,有些是先强化记忆的,以后你就会懂的。追问

亲,你能再看看这个吗?

追答

*P是定义一个指针P,当P=A后就表示,P指针指向A数组,这个头地址就是你注明的P=&A[0],
当你用*P时就读到数组的A[0]的保存的数值“1 ”。

本回答被提问者和网友采纳
第3个回答  2023-12-10
强制类型转换,即把一个存着int型的地址,强制转换成float 型的地址,纯地址不变,然而,取值的时候却是不一样了,因为虽然同为4字节,但int 型和float型在里面存放的格式不一样,所以,转换后,虽然指向还是那个地址,但取出来的值有问题。就像,int a=12;printf(“%f",a)一样,结果会是0,而不是12.0000,不知道这样说,楼主明白了没有?