C Primer Plus学习 二十一 指针操作

         可以对指针进行哪些操作?C提供了6种基本的指针操作,下面的程序将具体演示这些操作。为了显 示每一个操作结果,程序将打印出指针的值(即指针指向的地址)、指针指向地址中存储的内容,以及指针 本身的地址(如果您的编译器不支持%p说明符,那么要想打印出地址,就需要用%u或者%lu)。

//ptrlops .c 指针操作
#include <stdio.h>
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, pointer address:\n");
printf ("ptrl = %p, *ptrl=%d, &ptrl = %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++;//递增指针
printf ("\nvalues after ptrl++\n");
printf ("ptrl = %p, *ptrl =%d. &ptr1 = %p\n",ptr1, *ptr1, &ptr1);
ptr2--;//递减指针
printf ("\n values after --ptr2\n");
printf ("ptr2 = %p, *ptr2 = %d. &ptr2 = %p\n", ptr2, *ptr2, &ptr2);
--ptr1; //恢复为初始值
++ptr2; //恢复为初始值
printf ( "\nPointers reset to original values: \n" );
printf ( "ptrl = %p ptr2 = %p\n" , ptr1, ptr2);
//—个指针减去另一个指针
printf( "\nsubtracting one pointer from another:\n" );
printf ( "ptr2 = %p, ptrl = %p, ptr2 - ptrl = %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;
}


结果:






  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值