一、指针可以加一个整数
往下指几个它指向的变量,结果还是个地址
前提:指针指向数组的时候,加一个整数才有意义
//指针可以加一个整数,往下指几个它指向的变量,结果还是个地址
void test1()
{
int a[10];
int *p, *q;
//p和q间隔8个字节,意味着加一个整数最终移动的字节数与指针变量的类型也有关系
p = a;
q = p + 2;
printf("p = %p\n", p);
printf("q = %p\n", q);
return ;
}
执行结果

二、两个相同类型指针可以比较大小
前提:只有两个相同类型的指针指向同一个数组的元素的时候,比较大小才有意义
指向前面元素的指针 小于 指向后面 元素的指针
void test2()
{
int a[10];
int *p,*q;
p=&a[1];
q=&a[6];
if(p<q)
{
printf("p < q\n");
}
else if(p>q)
{
printf("p > q\n");
}
else
{
printf("p = q\n");
}
}
执行结果 :p<q
三、两个相同类型的指针可以做减法
前提:必须是两个相同类型的指针指向同一个数组的元素的时候,做减法才有意义
做减法的结果是,两个指针指向的中间有多少个元素
void test3()
{
int a[10];
int *p,*q;
p=&a[0];
q=&a[3];
printf("%d\n",q‐p);
}
执行结果:3
四、两个相同类型的指针可以相互赋值
注意:只有相同类型的指针才可以相互赋值(void *类型的除外)
void test4()
{
int a = 100;
int *p, *q;
p = &a;
printf("a = %d %d\n", a, *p);
q = p;
printf("*q = %d\n", *q);
*q = 999;
printf("a = %d\n", a);
}
执行结果

本文详细介绍了C++中指针的操作,包括指针可以加减整数来移动到数组的其他元素,相同类型的指针可以比较大小以及做减法来确定元素间的距离,还有指针之间的赋值。每个操作都通过实例展示了其执行结果和适用条件。
936

被折叠的 条评论
为什么被折叠?



