Posted on 2011-05-13 11:57
xsong 阅读(171)
评论(0) 编辑 收藏 所属分类:
c
/*数组和指针
* 在函数原型中,如果参数是数组,则等价于参数是指针的形式,例如:
void func(int a[10])
{
}
等价于:
void func(int *a)
{
}
第一种形式方括号中的数字可以不写,仍然是等价的:
void func(int a[])
{
}
*/
int a[]={5,6,7,8};
// int *p=&a[0]; 一般简写为
int *p=a;
printf("p address %p \n",p);
printf("p value %i \n", *p);
//指针自加 p++ p=a[1]
p++;
printf("p++ value %i \n",*p);
// 指针的比较运算,比较的是两个指针的地址, 但只有一个数组内的指针比较才有意义。
//如果为true 输出 1, 如果为 false 输出0 ,c 语言中没有 boolean 类型
printf(" complete p %i \n", p+2>p);
printf(" complete p %i \n", p+2<p);
//指针相减表示两个指针之间相差的元素个数, C语言也规定两个指针不能相加
printf(" p-1 value %i",*(p-1));