C语言二级指针、指针数组

一、二级指针

 

        指针变量也是变量,是变量就应有地址,那指针变量的地址存放在哪里?存放在二级指针变量。

        

此时,*ppa == pa,**ppa == a

二、指针数组

        指针数组,顾名思义就是存放指针的数组

数组每个元素为int类型,于是为 int arr[ 5 ] ,数组每个元素为char类型,于是为 char arr[ 5 ] ,那么如果数组每个元素为 int* (指针)类型,那么即为 int* arr[ 5 ] 。

        指针数组的每个元素是地址,又可以指向一块区域

三、指针数组模拟二维数组

#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数组中
	int* parr[3] = { arr1, arr2, arr3 };
	int i = 0;
	int j = 0;
	for (i = 0; i < 3; i++)
	{
		for (j = 0; j < 5; j++)
		{
			printf("%d ", parr[i][j]);
		}
		printf("\n");
	}
	return 0;
}

        parr[ i ]是访问parr数组的元素,parr[ i ]找到的数组元素指向了整形一维数组,parr[ i ][ j ]就是整型一维数组中的元素。上述的代码模拟出二维数组的效果,实际上并非完全是二维数组,因为每行并非是连续的。

相关推荐

  1. C语言——二级指针

    2024-06-10 07:20:06       59 阅读
  2. C语言 数组指针

    2024-06-10 07:20:06       67 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-06-10 07:20:06       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-06-10 07:20:06       101 阅读
  3. 在Django里面运行非项目文件

    2024-06-10 07:20:06       82 阅读
  4. Python语言-面向对象

    2024-06-10 07:20:06       91 阅读

热门阅读

  1. Spring RestClient报错:400 Bad Request : [no body]

    2024-06-10 07:20:06       31 阅读
  2. 临近空间飞艇技术

    2024-06-10 07:20:06       36 阅读
  3. IO流(字符流)

    2024-06-10 07:20:06       32 阅读
  4. Web前端炒作:揭秘行业现象,探索真实价值

    2024-06-10 07:20:06       23 阅读
  5. QT学习之自定义控件封装

    2024-06-10 07:20:06       25 阅读
  6. Python降维基础知识:深入探索与实战应用

    2024-06-10 07:20:06       36 阅读
  7. IDM究竟有哪些优势

    2024-06-10 07:20:06       28 阅读