在c语言中,指针变量的个数是不是一个定值?(因为无论是32为还是64为的计算机,内存内部的单元是固定的

 我来答
凡思多客
2012-12-18 · TA获得超过183个赞
知道小有建树答主
回答量:136
采纳率:0%
帮助的人:69.4万
展开全部

指针的实质就是内存地址,但是,操作系统内允许的指针数目的上限却不是内存单元的最大值,因为在具体实现的过程中,操作系统为不同来源的指针分配地址方式不同。

C/C++程序所对应的存储区,分位三类

  1.静态存储区:内存在程序编译的时候就已经分配好,这块内存在程序的整个运行期间 都存在。它主要存放静态数据、全局数据和常量。

  2.栈区:在执行函数时,函数内局部变量的存储单元都可以在栈上创建,函数执行结束 时这些存储单元自动被释放。栈内存分配运算内置于处理器的指令集中,效率很高,但是分配的内存容量有限。

  3.堆区:亦称动态内存分配。程序在运行的时候用malloc或new申请任意大小的内存,程序员自己负责在适当的时候用free或delete释放内存。

举个例子吧,

char a[] = "Hello World";

char *p  = "Hello World";

这里char a[] = "Hello World",其空间是分配在栈中的,所以你可以对其中的内容进行修改。而char *p = “Hello World”,其空间是分配在静态存储区的。且Hello world为字符串常量,是不允许修改的。

在此例中计算机最多同时可以定义的像p那种类型指针的上限就是栈区的地址单元数目。

如图:

左左强强峰峰
2012-12-18 · TA获得超过441个赞
知道小有建树答主
回答量:481
采纳率:100%
帮助的人:132万
展开全部
指针变量的个数?……你是说指针变量所占的字节数吧?这个倒是定值,无论它指向的是何值,它都占相同的字节数。
追问
其实我的问题也可以这么说:一个计算机最多同时可以定义多少个指针?
追答
这个我就不知道了,不过我看楼上答的好像是对的。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
钝锋2
2012-12-18 · 超过29用户采纳过TA的回答
知道答主
回答量:119
采纳率:0%
帮助的人:44.3万
展开全部
以我之见它是一个定值,在vc6.0的编译环境中它占有四个字节数。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式