指针数组是用来储存地址和数据的吗?

来源:百度知道 编辑:UC知道 时间:2024/06/30 03:08:31
想这样的指针数组定义:
char *shuzu[]={"one","two","three"};

那么shuzu[1],shuzu[2],shuzu[3]分别指向one,two,three三个字符数组,
照这样说,这个指针数组不仅储存这些字符,而且储存了它们的地址。但是在内存空间里怎样能够储存两个不同的数据?
不知我理解得对不对。有不对的请指出。

还有就是指针数组和数组指针有什么不同?数组指针只是能储存地址吗?

我还是初学者,呵呵!!

兄弟.char *shuzu[]={"one","two","three"};

shuzu[1],shuzu[2],shuzu[3]这是错误的.数组的下标是从零开始的.应该是shuzu[0],shuzu[1],shuzu[2],它们里面存储的是指向这三个字符串的地址.应该差不多了吧.有问题,给我发消息.

char *shuzu[]={"one","two","three"}; 可以这样理解:

1 shuzu[0] ,shuzu[1],shuzu[2],他们是储存地址的,不是变量是指针;
2 shuzu[0][0],shuzu[0][1],、、shuzu[0][3],他们储存字符串中字符的也可以这样访问其中的字符。其他两个雷同
事实上确实如此

这个指针数组没有储存这些字符,只存地址的值,但这个值和这些指针所在的内存地址的值是不同的,而该地址的值分别是这三个数的内存地址值。

这个数组里面只存储了三个地址,而这三个字符串是存放在程序的静态数据区中的。

只要是指针存放的就是地址。