指针在编译系统的地址,该如何处理

指针在编译系统的地址
比如说char *p,是不是编译系统给指针p分配了一个地址,又给p分配了一个地址了呢?

------解决方案--------------------
不是,就一个空间 p,是个指针空间。在win32下,它的大小是4个字节。

*p只是对p所指向内容的描述,不是另一个变量。而你这个指针被定义后还没指向任何目标,所以系统也不会分配别的空间。
------解决方案--------------------
探讨

#include<stdio.h>
void main()
{
char *p="helloworld";
char *q="helloworld";
printf("%c,%c\n",*p,*q);
printf("%d,%d\n",p,q);
printf("%d,%d\n",&amp;p,&amp;q);
}
那这里面的printf("%d,%d\n"……

------解决方案--------------------
探讨

我觉得应该是*p输出的是值,p是输出helloworld所在内存得地址,&amp;p是输出指针的地址,不知道我理解的对不对

------解决方案--------------------
char *p 跟 int a 一样都只分配了一次内存空间!