指针系列六(指针与二维数组)
//指针与二维数组
int array[4][5] = { 0 };
printf("sizeof int: %d\n", sizeof(int));
printf("array: %p\n", array);
printf("array + 1 : %p\n",array +1);
//上面程式证明 array+1,地址加了20,每一个整形四个字节,相当于跨越了五个字节
//证明了array是指向包含了五个元素的数组的指针
//指针解引用
int array[4][5] = { 0 };
int i, j, k=0;
for ( i = 0; i < 4; i++)
{
for ( j = 0; j < 5; j++)
{
array[i][j] = k++;
}
}
printf("*(array+1): %p\n",*(array +1) );
printf("array[1] :%p\n", array[1]);
printf("&array[1][0]:%p \n", &array[1][0]);
printf("**(array+1): %d\n", **(array + 1));
//-----------------------
下面相等
printf("*(*(array+1)+3): %d\n", *(*(array + 1) + 3));//第二行第四列 8
printf("array[1][3]:%d \n", array[1][3]);//第二行第四列 8
//-----------------------
// 数组指针与二维数组
int array[2][3] = { {0,1,2},{3,4,5} };
int (*p)[3] = array;
printf("**(p+1):%d\n", **(p + 1));
printf("**(array+1):%d\n", **(array + 1));
printf("array[1][0]:%d\n", array[1][0]);
printf("*(*(p+1)+2):%d\n", *(*(p + 1) + 2));
printf("*(*(array+1)+2):%d\n", *(*(array + 1)+ 2));
printf("array[1][2]:%d\n", array[1][2]);
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构