当前位置: 首页 > news >正文

深入理解指针(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;
}

相关文章:

  • 机器学习的基本概念
  • 面向智能家居安全的异常行为识别与应急联动关键技术研究与系统实现(源码+论文+部署讲解等)
  • 第二章 信息技术发展(2.1 信息技术及其发展)
  • 高频面试题:如何保证数据库和es数据一致性
  • 11.ArkUI Tabs的介绍和使用
  • 跟我学C++中级篇——处理对象的复制
  • 【科研绘图系列】R语言绘制区间点图(dot plot)
  • Vue前端学习笔记
  • 什么是测试驱动开发(TDD)?
  • Safety Estimands与Efficacy Estimands的差异剖析
  • UR5 UR5e机器人URDF文件
  • ai聊天流式响应,阻塞式和流式响应 nginx遇到的坑
  • 科技与商业动态简报
  • 基于python代码的通过爬虫方式实现快手发布视频(2025年4月)
  • QT 连接数据库操作(15)
  • 无人机环境适应性与稳定性技术要点!
  • python 环状图 (pycirclize)
  • 【含文档+PPT+源码】基于微信小程序连锁药店商城
  • 基于 Python(selenium) 的百度新闻定向爬虫:根据输入的关键词在百度新闻上进行搜索,并爬取新闻详情页的内容
  • 【Linux内核设计与实现】第三章——进程管理02
  • 上海:以税务支持鼓励探索更多的创新,助力企业出海
  • 金砖国家外长会晤主席声明(摘要)
  • 全文丨中华人民共和国传染病防治法
  • 过去24小时中美是否就关税问题进行过接触?外交部:没有
  • 黄宾虹诞辰160周年|一次宾翁精品的大集结
  • 上海市十六届人大常委会第二十一次会议表决通过有关人事任免事项