c 数组与指针

Posted on 2011-05-13 11:57 xsong 阅读(162) 评论(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));

只有注册用户登录后才能发表评论。


网站导航: