首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

数组与指针有关问题(在内存中怎么存放)

2012-04-28 
数组与指针问题(在内存中如何存放)看图片:指针P我明白,它在内存中的地址可以知道是:0x0012ff4c且其地址所

数组与指针问题(在内存中如何存放)
看图片:




  指针P我明白,它在内存中的地址可以知道是:0x0012ff4c 
且其地址所指的内存中存放的内容也是个地址(p的内容):0x0041573c
*p表示该地址:0x0041573c中的内容,即('gfedcba')。应该没说错吧?

 但是,指针a(数组名也是个指针吧),有点搞不懂,是否他在内存中存放的地址就是:0x0012ff58 而且,
该地址中的内容就是:'a',或者说是:'abcdefg' 呢? 
  请大家指教下



[解决办法]
首先,数组名不是指针。
a指向的是一个字符数组。
数组的首地址为0x0012ff58。
而数组中第一个元素的地址也为0x0012ff58。
[解决办法]
感谢断帖.
0x0012ff58 是a在内存的地址,这是对的。
或者说 a等于0x0012ff58,a其实就是代表一个地址.但是C标准又规定,数组名再取地址(使用&),返回少一维的变量的首地址。
注意我上面说的,(规定)和(少一维)
规定就是非常规,不要按平时你去&取地址的知识去理解。一个立即数是没有地址的,所以C标准做了这样的规定。
少一维就是如果是二维,就变成一维,一维就变成一个变量。

楼主你该理解了吧

热点排行