#include <stdio.h>
char test1(char a)
{
return a;
}
int main(int argc, char** argv)
{
int a[4][3] = {
{ 1, 2, 3 },
{ 4, 5, 6 },
{ 7, 8, 9 },
{ 10, 18, 19 } };
int (*p1)[3] = a;
//int** p2 = a; //警告,无法遍历
for (size_t i = 0; i < 4; i++)
{
for (size_t j = 0; j < 3; j++)
{
printf("%d\n", *(*(p1 + i) + j)); //i为行,j为列,先遍历列
}
}
char b[4][3] = { {"abc"},{"def"},{"ghi"},{"ftk"} };
char(*p5)[3] = b; //数组指针,是指针,指向成员数量为3的数组,数组里面3个都是char类型的字符
//char* p2[3]; //指针数组,是数组,存放了3个 char* 类型的指针.
//char (*p2)(char); //函数指针,是指针,指向形参为char,返回值为char的函数。
//typedef char (*p2)(char);
//p2 p3 = test1; //函数指针指向具体函数,委托
//char (*p2[10])(char) 函数指针,是指针,一个有10个指针的数组,指向一个函数,该函数有1个char形参并返回char类型返回值
for (size_t i = 0; i < 4; i++)
{
for (size_t j = 0; j < 3; j++)
{
printf("%c\n", *(*(p5 + i) + j)); //i为行,j为列
}
}
/* 结果
1
2
3
4
5
6
7
8
9
10
18
19
a
b
c
d
e
f
g
h
i
f
t
k
*/
}
二维数组和二级指针的关系,如何正确使用二级指针表示二维数组
最新推荐文章于 2024-05-06 23:53:28 发布
本文展示了如何在C语言中使用指针遍历二维数组,包括整数数组和字符数组。通过示例代码解释了指针到数组的引用以及如何通过指针遍历矩阵的每个元素。同时,提到了函数指针的概念。
1216

被折叠的 条评论
为什么被折叠?



