欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 文旅 > 明星 > 深入理解指针(4)

深入理解指针(4)

2025/4/26 10:42:16 来源:https://blog.csdn.net/2301_79479763/article/details/147518622  浏览:    关键词:深入理解指针(4)

1.二级指针

如何理解呢?

1.pp的类型是int * * ——二级指针类型

2.p指向a,a的类型是int

3.int * * pp 其中 int * 在说明 pp 是指向 p 的类型 int * ,第二个 * 说明 pp 是指针变量

4.p + 1 跳过 4 个字节 , pp + 1 跳过 4 或者 8 个字节(要看对应的指针变量是多少)

由图可见,打印的是一样的

2.指针数组

存放指针的数组

int * arr[]

char * []

double * []

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

3.指针数组模拟二维数组

其中对于 arr[i][j] 编译器会当作*(*(arr+i)+j)  ——  指针运算!

其中所用到的代码如下:

#define _crt_secure_no_warnings 1
#include <stdio.h>
//void Print(int n)
//{
//	if (n > 9)
//	{
//		Print(n / 10);
//	}
//	printf("%d ", n % 10);
//}
//int main()
//{
//	int n = 0;
//	scanf("%d", &n);
//	Print(n);
//	return 0;
//}//int main()
//{
//	int a = 10;
//	int* p = &a;
//	//p是一级指针
//	int** pp = &p;
//	//pp是二级指针
//	printf("%p\n", *pp);
//	printf("%p", &a);
//	return 0;
//}int main()
{int arr1[] = { 1,2,3,4,5 };int arr2[] = { 2,3,4,5,6 };int arr3[] = { 3,4,5,6,7 };int* arr[] = { arr1,arr2,arr3 };//打印数组int i = 0;for (i = 0; i < 3; i++){int j = 0;for (j = 0; j < 5; j++){printf("%d ", arr[i][j]);}printf("\n");}return 0;
}

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词