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

这两个指针操作相像为什么有质的不同

2013-10-07 
这两个指针操作相似为什么有质的不同?如题:#include stdafx.h#include stdio.hint main(void){int (*q

这两个指针操作相似为什么有质的不同?
如题:

#include "stdafx.h"
#include "stdio.h"

int main(void)
{
int (*q)[3];
int *p;
int ar[3];

ar[0] = 10;
ar[1] = 20;
ar[2] = 30;

q = &ar;
*q = ar;

printf("%d\n", *(*q+2));
printf("%d\n", *(ar+2));

p = ar;
*p = ar[0];

return 0;
}


编译时提示这里“*q = ar;”'=' : left operand must be l-value;但是我下面的一维指针的操作与它相似不会报错,为什么?
[解决办法]
*q = ar;*q表示向q指针指向的内存写入数据 但是q指向的内存只能存int类型的 明显 ar是不对的 ar是数组首地址啊
 *p = ar[0];ar[0]表示已经取出数值了 而且也符合指针的类型  所以没问题 

热点排行