指针01-02

文章详细解释了C语言中指针数组和数组指针的概念,包括如何声明、初始化和使用。通过示例代码展示了如何用指针数组存储数组的首地址,以及如何通过指针访问和遍历数组元素。同时,提到了数组名在内存中的表示以及指针加法的含义。
摘要由CSDN通过智能技术生成

指针数 是数组 用来存放指针

#include <stdio.h>

int main()
{
    int arr[10] = {0};//整型数组
    char ch[5] = { 0 };//字符数组
    int* parr[4];//存放整型指针的数组 - 指针数组
    char* pch[6];//存放字符指针的数组 - 指针数组

    return 0;
}
#include <stdio.h>

int main()
{
    int arr1[] = {1,2,3,4,5};
    int arr2[] = {2,3,4,5,6};
    int arr3[] = {3,4,5,6,7};

    int* parr[]= {arr1,arr2,arr3};
    int i = 0;
    for(i = 0;i <3 ;i++){//parr[i]存放首字母的地址 +j 向后偏移j个位子
        int j = 0;
        for(j = 0;j < 5;j++)
        {
            printf("%d",*(parr[i] + j));
        }
        printf("\n");
    }
    return 0;
}
#include <stdio.h>

int main()
{
    char* arr[5];//指针数组
    char* (*pa)[5] = &arr;
    return 0;
}

指针数组取&获取到地址
地址应该存到指针里
pa是指针变量的名字
*提示是个指针
[5] pa指向的数组是5个元素
char*为pa指向的数组的元素类型

#include <stdio.h>

int main()
{
    int arr[10] = { 0 };
    printf("arr = %p\n",arr);
    printf("&arr = %p\n",&arr);

    printf("arr + 1= %p\n",arr+1);
    printf("&arr + 1= %p\n",&arr+1);

    return 0;
}

&arr 表示的是数组的地址 不是首元素的地址
数组的地址+1 跳过整个数组大小 所以&arr + 1相对于 &arr差值为40
arr 是数组名 表示数组首元素地址 所以与arr+ 1 差值为一个元素

  • 输出结果如下

在这里插入图片描述

  • 指针使用:
    在这里插入图片描述
    在这里插入图片描述

这几种形式都是相同含义

  • 小例题:
int arr[5];//数组 5个元素 每个元素是整型
int *parr1[10]; //parr1是指针数组
int (*parr2)[10]; //parr2是数组指针 指向10个整型元素的数组
int (*parr3[10])[5];//parr3是一个数组(方块优先级高 )该数组有10 元素 每个元素是一个数组指针 数组指针指向的数组有5个元素 每个元素是整型
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值