#指针的6种操作
int main(void)
{
int urn[5] = {100, 200, 300, 400, 500};
int * ptr1, * ptr2, * ptr3;
ptr1 = urn;
ptr2 = &urn[2];
//指针的赋值
printf("pointer value, dereferenced pointer address:\n");
printf("ptr1 = %p, *ptr1 = %d, &ptr1 = %p\n", ptr1, *ptr1, &ptr1);
//指针的加法
ptr3 = ptr1 + 4;
printf("\nadding an int to a pointer:\n");
printf("ptr1 + 4 = %p, *(ptr4 + 3) = %d\n",ptr1 + 4, *(ptr1 + 3));
//递增指针,&ptr1变量不会因为本身值得变化而改变位置
ptr1 ++;
printf("\nvalues after ptr1 ++\n");
printf("ptr1 = %p, *ptr1 = %d, &ptr1 = %p\n", ptr1, *ptr1, &ptr1);
//递减指针。
ptr2 --;
printf("\nvalues after --ptr2\n");
printf("ptr2 = %p, *ptr2 = %d, &ptr2 = %p\n", ptr2, *ptr2, &ptr2);
//恢复初始值
--ptr1;
++ptr2;
printf("\nPointers reset to original values:\n");
printf("ptr1 = %p, ptr2 = %p\n",ptr1, ptr2);
//一个指针减去另一个指针
printf("\nsubtracting one pointer from another:\n");
printf("ptr2 = %p, ptr1 = %p, ptr2 - ptr1 = %d\n", ptr2, ptr1, ptr2 - ptr1);
//一个指针减去一个整数
printf("\nsubtracting an int from a pointer:\n");
printf("ptr3 = %p, ptr3 - 2 =%p\n", ptr3, ptr3 -2);
return 0;
}
##上面的例子详细讲诉了指针的6种操作方式。值得注意的是:指针的加减就是整数的加减运算。指针和整数的加减运算和整数的类型有关。指针和指针不可以相加没意义。
*在指针的实际操作中切记“指针是否为NULL”,“指针大小限定”。以免指针飞出有效的执行范围,冲击其他有效数据!!!!!