指针基础概念
指针的兼容性
![](//images0.cnblogs.com/blog/660888/201409/032343298288616.png)
![](//images0.cnblogs.com/blog/660888/201409/032343303133003.png)
sizeof的结果是一样的就是兼容的。
int *p;
unsigned int ui = 10;
p = &ui; //正确
指针相加:
不是以整数的形式增加,而是移动
数组名与指针:
![](http://images0.cnblogs.com/blog/660888/201409/032343298288616.png)
函数应该传数组名 :
#include <stdio.h>
void func(int *a)
{
a += 3;
*a = 100;
}
int main()
{
int a[10] = {1,2,3,4,5,6,7,8,9,0};
int i;
func(&a);
//这里传递 &a 结果虽然正确 不过传a才是正解 vs2013 和 linux 都报警告,不过都能正确执行for (i = 0; i < 10;i++)
printf("%d\n",a[i]);
return 0;
}
![](http://images0.cnblogs.com/blog/660888/201409/032343303133003.png)