浅谈指针数组

简介: 浅谈指针数组

下面请看笔者对于进阶字符指针的详解!


int* arr1[10];  //整型指针的数组

char* arr2[2];  //一级字符指针的数组

char** arr3[5];  //二级字符指针的数组

上面的两个字符指针的数组,是由整型指针的数组借鉴而来!


下面请看代码,笔者用代码+解析的方式来带领大家理解!


#include <stdio.h>
int main()
{
  char* arr[5] = { "zhangsan","lisi","wangwu","hehe","ruhu" };
  int i = 0;
  for (i = 0; i < 5; i++)
  {
  printf("%s\n", arr[i]);
  }
  return 0;
}

在上述代码段中,笔者定义了: char* arr[5];类型的存放指针的数组,然后通过printf函数每次都打印出来!


但是,这里用了原先打印数组的方式来打印,并不是笔者创造该博客的所想思想!


所以将printf函数里面的内容进行简单更改为:


printf("%s\n",*(arr+i));

再这个代码中,读者应该也能看懂,毕竟这个是指针的入门知识!


对存放字符指针的数组: char* arr[5]; 进行分解为:


char*
char*
char*
char*
char*

每一个char* ,都指向该元素的首字母!即:‘z' , 'l' , 'w' , 'h', 'r' 五个字母!


该段代码段运行结果为:


0a2653c851af460fa595bd959398a8f1.png


下面请看笔者所写的:指针数组的精华部分:


#include <stdio.h>
int main()
{
  int arr1[5] = { 1,2,3,4,5 };
  int arr2[5] = { 2,3,4,5,6 };
  int arr3[5] = { 3,4,5,6,7 };
  int* arr[3] = { arr1,arr2,arr3 };
  int i = 0;
  int j = 0;
  for (i = 0; i < 3; i++)
  {
  for (j = 0; j < 5; j++)
  {
    printf("%d ", arr[i][j]);
  }
  printf("\n");
  }
  return 0;
}

在上面代码中,笔者定义了三个一维数组,并且通过一个指针数组将这三个一维数组进行联立起来!int* arr[3] = { arr1,arr2,arr3 };   这个确实很难想到,毕竟很少有这样使用的方法,在此,笔者仅仅是用来模拟一下,仅供参考!


下面是笔者在画图板上面的操作!


6de278e6d6694ce5bb08e7e842b7e74b.png


在上面图片中,详细的讲解了:指针数组的简单运用过程!


首先在for循环里面,由 i 外层循环开始变化,到 j 内层循环变化,依次找到数组!并且打印出来!最后运行结果为:


12c3b7f3f8814309a195c64f051d4445.png


该段内容大致已经结束,笔者对于指针数组部分,暂时先讲解到此,至于精彩部分,请看笔者后续!


相关文章
|
18天前
|
C语言
C语言:数组和指针笔试题解析(包括一些容易混淆的指针题目)
C语言:数组和指针笔试题解析(包括一些容易混淆的指针题目)
|
1月前
|
存储 编译器 C语言
函数指针&&数组指针&&数组传参的本质&&字符指针(进阶篇)
函数指针&&数组指针&&数组传参的本质&&字符指针(进阶篇)
|
2月前
|
C语言
指针和数组笔试题解析(最详细解析,没有之一)
指针和数组笔试题解析(最详细解析,没有之一)
28 0
|
2月前
|
C语言
指向结构体数组的指针
指向结构体数组的指针
15 2
|
2月前
|
存储 算法 C语言
通过指针引用数组元素
通过指针引用数组元素
21 0
|
2月前
|
C语言 C++
数组元素的指针
数组元素的指针
11 0
|
2月前
|
存储 C++
使用字符指针变量和字符数组的比较
使用字符指针变量和字符数组的比较
14 0
数组指针、函数指针、指针数组、函数 指针数组、指针函数详细总结
数组指针、函数指针、指针数组、函数 指针数组、指针函数详细总结
|
18天前
指针指向数组
指针指向数组
17 0
|
20天前
|
存储 人工智能 C++
【重学C++】【指针】详解让人迷茫的指针数组和数组指针
【重学C++】【指针】详解让人迷茫的指针数组和数组指针
34 1

热门文章

最新文章