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

数组和指针有些有关问题还是不理解。

2012-10-07 
数组和指针有些问题还是不理解。。。。。。。。。。void main(){int array[16]{1,2,3,4}printf(arrays address i

数组和指针有些问题还是不理解。。。。。。。。。。
void main()
{
  int array[16]={1,2,3,4};
printf("array's address is %x\n",array);
printf("array's address is %x\n",&array);
int *p;
p=array;
printf("p is %d\n",p);
printf("&p is %d\n",&p);
p=(int*)&array;
printf("p is %d\n",p);
printf("&p is %d\n",&p);
}

不太理解p = array;这句话什么意思?
我先按照自己的理解,说说自己的想法?有不对的地方,还望不吝赐教
p=array 是将数组地址赋值给指针p,这和指针p指向数组有什么不同?(不同?相同?)

数组地址赋值给p,那么p的值和&array是不是相同的呢?(不同?相同?),显然从输出结果上看,是不同的。。。



============================================分隔线==============================================


如果将上面数组改成字符型,又会怎样呢?

void main()
{
  char array[]="hello";
printf("array's address is %x\n",array);
printf("array's address is %x\n",&array);
int *p;
p=array;
printf("p is %d\n",p);
printf("&p is %d\n",&p);
p=(int*)&array;
printf("p is %d\n",p);
printf("&p is %d\n",&p);
}


int array[]输出array的值时,是地址,而char array[]输出array时,却是“hello”。。。
why?

[解决办法]
我记得当初看指针的时候写过一点感受,你要觉得有用就去看看
http://blog.sina.com.cn/s/blog_9da24f3b01013199.html
觉得小儿科就算了,嘿嘿

热点排行