当前位置:   article > 正文

C\C++_指针_数组指针

C\C++_指针_数组指针

1. 定义

指向整个数组,即一个整体,可以看做单个变量

2. 说明

在这里插入图片描述
在这里插入图片描述

3. 代码示例

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>

//********************【数组指针】:它是指针,指向数组的指针**********************************。
//数组的类型由元素类型和数组大小共同决定:int array[5]  的类型为  int[5];C语言可通过typedef定义一个数组类型:

void _cdecl Test01()
{
	int arr[] = { 1, 2, 3, 4, 5 };

	//定义一个数组类型ARRAY_TYPE,可以把int arr[5]看成一个整体、一个ARRAY_TYPE类型的变量
	typedef int(ARRAY_TYPE)[5]; 
	ARRAY_TYPE myArr;
	for (int i = 0; i < 5; i++)
	{	
		myArr[i] = i + 10;
	}
	for (int i = 0; i < 5; i++)
	{
		printf("%d\n", myArr[i]);
	}

	//对数组名取地址代表指向整个数组的指针
	//1. *pArr 表示拿到pArr指针指向的整个数组(即数组名,代表数组首地址)
	ARRAY_TYPE *pArr = &myArr;
	pArr = &arr;
	for (int i = 0; i < 5; i++)
	{
		printf("%d\n", *(*pArr + i));
	}
	
	//2. 直接定义数组指针类型 ,可以把int arr[5]看成一个整体、一个(*ARRAY_POINTER)类型的变量,所以ARRAY_POINTER指针即指向该类型变量,即指向整个数组;*ARRAY_POINTER就是拿到整个数组(数组名)
	typedef int(*ARRAY_POINTER)[5];
	ARRAY_POINTER pArray = &arr;

	//3. 直接定义数组指针类型
	int(*pArrParam)[5] = &arr;
}

int main()
{
	Test01();

	system("pause");
	return EXIT_SUCCESS;
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/喵喵爱编程/article/detail/952129
推荐阅读
相关标签
  

闽ICP备14008679号