C语言中的指针操作

C语言中指针操作主要有以下几种:

  1. 指针赋值(assignment):将一个地址赋给指针
  2. 求值(value-finding/dereferencing):通过运算符*求出指针所指向地址中存储的数值。
  3. 取指针地址:可以使用&获得指针变量本身地址。
  4. 将整数加给指针:使用+将整数加给指针,该整数会与指针所指类型占字节数相乘,并将乘积加到初始地址。
  5. 指针自增:对指向某数组元素的指针做自增运算,可以让指针指向数组下一个元素。
  6. 指针减去一个整数:类比上面的4。
  7. 指针自减:类比上面的5.
  8. 求差值:通常对指向一个数组两个不同元素的指针求差值,代表两个元素位置的差值。

示例:

 

#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("ptr1 = %u, *ptr1 = %d, &ptr1 = %u\n",ptr1,*ptr1,&ptr1); 
 
    //指针加法 
    ptr3 = ptr1 + 4; 
    printf("adding an int to a pointer:\n"); 
    printf("ptr1 + 4 = %u,*(ptr1 + 4)=%d\n",ptr1+4,*(ptr1+4)); 
 
    //指针自增 
    ptr1++; 
    printf("values after ptr1++:\n"); 
    printf("ptr1=%u,*ptr1=%d,&ptr1=%u\n",ptr1,*ptr1,&ptr1); 
 
    //指针自减 
    ptr2--; 
    printf("values after ptr2--:\n"); 
    printf("ptr2=%u,*ptr2=%d,&ptr2=%u\n",ptr2,*ptr2,&ptr2); 
 
    --ptr1; 
    ++ptr2; 
 
    printf("Pointers reset to original values:\n"); 
    printf("ptr1=%u,ptr2=%u\n",ptr1,ptr2); 
 
    //指针相减 
    printf("subtracting one pointer from another:\n"); 
    printf("ptr2=%u,ptr1=%u,ptr2-ptr1=%u\n",ptr2,ptr1,ptr2-ptr1); 
 
    //一个指针减去一个整数 
    printf("subtracting an int from a pointer:\n"); 
    printf("ptr3=%u,ptr3-2=%u\n",ptr3,ptr3-2); 
} 

C语言指针操作示例运行结果

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值