指针是没有类型的吗,如int*p只是定义指针指向的类型为整形,而并不是指针变量的类型,

如果指针没类型,怎么分配内存呢(给多大的内存)... 如果指针没类型,怎么分配内存呢(给多大的内存) 展开
 我来答
钟楼下鼓楼旁
推荐于2016-03-17 · TA获得超过212个赞
知道小有建树答主
回答量:179
采纳率:0%
帮助的人:198万
展开全部
指针的实质就是一个内存地址,所以从这个角度说,可以认为指针是没有类型的。但这个地址所指向的内存是可以存放你所想要存放的任意类型数据的,如int* 可以存放int类型的数据,char*可以存放char类型的数据,从这个角度说,你可以认为它是有类型的。
另外,一般编码中用指针比较多的操作大部分是对字符串的操作,因为要存放数据在内存中存放的时候,基本上都是一段连续的内存空间,所以上边说到的这个指针实际上只是这段连续内存空间的首地址,直到出现“\0”才认为是这段数据的结尾。其他用指针的地方基本都在参数定义的时候用。
关于分配内存的话题,一般都是对char*这种指针而言的,标准C中有很多完成内存分配工作的函数,如:malloc()等,你要申请的内存长度是作为参数直接传给malloc的,定义的时候,类似于下边这种形式:char* p = malloc(100);
当然也可以事先定义一个char型数组,如:char a[100]; 然后定义一个指针指向它,如:char* p =&a; 其中的“&”是取地址符,可以取得这个数组的首地址,然后赋值给指针p。
追问
奥,那么指针是不是应该i有数量啊,指针只是给变量分配了一个内存,并没说这个内存在哪里啊,电脑里应该i有很多内存吧,难道分配时就安顺序来,那个空着就放在哪里吗。电脑的内存一般是多少 ,哪里有提现,谢谢(地址的数量应该i少于内存的数量吧,一个地址可能占多个内存)
追答
电脑内存是操作系统进行管理的,用户在使用的时候,到底用的是哪段内存地址,这些对于用户来说都是透明的,不需要关心这些。实际上,当用户需要使用内存时,操作系统会把未使用的某一段内存分配给用户。当然C语言中,用户在通过malloc()申请使用内存完后,最后需要再次调用free()来释放自己申请的这段内存,如果不释放的话,可用内存就会越来越少。
现在的电脑内存配置基本上都是2G左右,在“我的电脑”的属性里可以看到。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式