数组指针和字符串指针那个所占内存大?

如题所述

字符串指针是指有个指针,他可以指向一个字符串的地址,实质上,还是指向一个字符的地址,字符串不过是多个放在一起的字符的集合。字符指针占4个字节。
数组指针?不大明白你的意思,你是指数组名吗,还是指定义了一个指针,把某个字符的地址赋给了它?即一个指向数组的指针?事实上,数组只是我们说的一个概念,在存储时仍然是一个一个数据的存放的,指针在某一时刻都只是指向某个数据,不存在指向整体一说。
注:数组名表示数组第一个元素的地址,是常量。不给它额外分配内存。可以参考相关C语言书籍。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-09-25
先帮你理一下什么是指针
指针里存放的就是某内存空间的物理地址,也有人把指针比喻为指向某个房间的钥匙,房间有大有小,但钥匙总是一样大的。
第2个回答  2011-09-26
一样大
第3个回答  2011-09-26
//改了两个地方,已标注在下面。
#include<stdio.h>
#include<string.h>
void main()
{
char c[10][80];
char *p[10];
int i;
void sort(char *p[10]);
for(i=0;i<10;i++)
p[i]=c[i];
for(i=0;i<10;i++)
gets(p[i]);
sort(p);
for(i=0;i<10;i++)
puts(p[i]);//改过!改过!改过!改过!参加排序是是指针,因此要改!
}
void sort(char *p[10])
{
int i,j;
char *t;
for(i=0;i<10;i++)
for(j=0;j<10-i-1;j++)//改过!改过!改过!数组超界!
{
if(strcmp(p[j],p[j+1])>0)
{
t=p[j];
p[j]=p[j+1];
p[j+1]=t;
}
}
}
第4个回答  2011-09-27
所有类型的指针都占用同样大的内存
相似回答