C语言指针(三):数组指针和字符串指针

本文详细讲解了C语言中指针在数组和字符串操作中的应用,包括如何通过指针遍历数组并找到最大值、最小值,数组的逆置,以及如何利用指针计算字符串长度和合并字符串。文中通过实例代码展示了各种操作的过程和结果。
摘要由CSDN通过智能技术生成

前面已经介绍了最基本的指针概念指针(一)以及二级指针,接下来我们学习指针在数组和字符串中的应用。

数组指针

通过指针遍历数组(一)

首先我们给出一个数组,如何通过指针来遍历数组中所有元素?

#include <stdio.h>
int main(){
   
    int arr[] = {
    1, 2, 3, 4, 5 };
    /*
	sizeof(arr)就是整个数组所有元素一共占用的内存大小
	sizeof(int)就是一个int型数据占用的内存大小
	sizeof(arr) / sizeof(int)就是数组的长度
	*/
    int len = sizeof(arr) / sizeof(int);  //求数组长度
    										
    int i;
    for(i=0; i<len; i++){
   
    /*
	arr 是数组名,指向数组的第 0 个元素,表示数组首地址
	arr+i 指向数组的第 i 个元素,*(arr+i) 表示取第 i 个元素的数据
	*/
        printf("%d  ", *(arr+i) );  //*(arr+i)等价于arr[i]
    }
    printf("\n");
    return 0;
}

运行结果:
在这里插入图片描述

通过指针遍历数组(二)

我们通过另外一种方式,单独定义一个指针,指向数组

#include <stdio.h>

int main(){
   
    int arr[] = {
    1, 3, 5, 7, 9 };
    int i, *p = arr, len = sizeof(arr) / sizeof(int);

    for(i=0; i<len; i++){
   
        printf("%d  ", *(p+i) );
    }
    printf("\n");
    return 0;
}

运行结果:
在这里插入图片描述

通过指针遍历数组(三)

对指针变量进行加法和减法运算时,是根据数据类型的长度来计算的。如果一个指针变量 p 指向了数组的开头,那么 p+i 就指向数组的第 i 个元素;如果 p 指向了数组的第 n 个元素,那么 p+i 就是指向第 n+i 个元素;而不管 p 指向了数组的第几个元素,p+1 总是指向下一个元素,p-1 也总是指向上一个元素。

#include <stdio.h>

int main(){
   
    int arr[] = {
    1, 3, 5, 7, 9 };
    int *p = &arr[2];  //也可以写作 int *p = arr + 2;

    printf("%d, %d, %d, %d, %d\n", *(p-2), *(p-1), *p, *(p+1), *(p+2) 
  • 5
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值