【C语言】学习笔记7——指针与多维数组

简介: 1. 声明一个指向多维数组的指针 int (* pz) [2]; //pz指向一个内涵两个int类型元素的数组 int * pax[2]; //pax 是一个内含两个指针元素的数组,每个元素都指向int的指针 2。

 1. 声明一个指向多维数组的指针

int (* pz) [2];   //pz指向一个内涵两个int类型元素的数组

int * pax[2];  //pax 是一个内含两个指针元素的数组,每个元素都指向int的指针

2。 看个例子  

//指针与多维数组 
#include <stdio.h>

int main()
{
    int zippo[4][2] = { {2, 4}, {6, 8}, {1, 3}, {5, 7} };
    
    int (*pz)[2]; // pz指向一个内含两个 int类型值的数组 
    
    pz = zippo;  // 将zippo的地址赋给指针 pz
    
    printf("       pz = %p, pz + 1= %p\n", pz, pz + 1);
    
    printf(" pz[0] = %p, pz[0] + 1 = %p\n", pz[0], pz[0] +1);
    
    printf("     *pz = %p, *pz + 1 = %p\n", *pz, *pz +1);
    
    printf("       pz[0][0] = %d\n", pz[0][0]);
    
    printf("         *pz[0] = %d\n", *pz[0]);
    
    printf("       pz[2][1] = %d\n", pz[2][1]);
    
    printf(" *(*(pz + 2) + 1) = %d\n", *(*(pz + 2)+ 1));
     
    return 0;
    
}

/*
Output:
       pz = 000000000062FE20, pz + 1= 000000000062FE28
 pz[0] = 000000000062FE20, pz[0] + 1 = 000000000062FE24
     *pz = 000000000062FE20, *pz + 1 = 000000000062FE24
       pz[0][0] = 2
         *pz[0] = 2
       pz[2][1] = 3
 *(*(pz + 2) + 1) = 3
----------------------- 
*/

解引用的用法大概都在这了。。。很绕,当你声明一个指针数组时,解引用了它还是一个指针, 再解引用才是得到值

 

所以使用数组的值,最好用下标,而不是指针表示法

 

相关文章
|
5天前
|
存储 C语言
【C语言基础】一篇文章搞懂指针的基本使用
本文介绍了指针的概念及其在编程中的应用。指针本质上是内存地址,通过指针变量存储并间接访问内存中的值。定义指针变量的基本格式为 `基类型 *指针变量名`。取地址操作符`&`用于获取变量地址,取值操作符`*`用于获取地址对应的数据。指针的应用场景包括传递变量地址以实现在函数间修改值,以及通过对指针进行偏移来访问数组元素等。此外,还介绍了如何使用`malloc`动态申请堆内存,并需手动释放。
|
8天前
|
存储 人工智能 C语言
C语言程序设计核心详解 第八章 指针超详细讲解_指针变量_二维数组指针_指向字符串指针
本文详细讲解了C语言中的指针,包括指针变量的定义与引用、指向数组及字符串的指针变量等。首先介绍了指针变量的基本概念和定义格式,随后通过多个示例展示了如何使用指针变量来操作普通变量、数组和字符串。文章还深入探讨了指向函数的指针变量以及指针数组的概念,并解释了空指针的意义和使用场景。通过丰富的代码示例和图形化展示,帮助读者更好地理解和掌握C语言中的指针知识。
|
13天前
|
存储 安全 C语言
C语言 二级指针应用场景
本文介绍了二级指针在 C 语言中的应用,
|
29天前
|
存储 编译器 C语言
【C语言篇】深入理解指针2
代码 const char* pstr = "hello world."; 特别容易让初学者以为是把字符串 hello world.放 到字符指针 pstr ⾥了,但是本质是把字符串 hello world. 首字符的地址放到了pstr中。
|
29天前
|
存储 程序员 编译器
【C语言篇】深入理解指针1
assert.h 头⽂件定义了宏 assert() ,⽤于在运⾏时确保程序符合指定条件,如果不符合,就报错终⽌运⾏。这个宏常常被称为“断⾔”。
|
1月前
|
存储 搜索推荐 C语言
C语言中的指针函数:深入探索与应用
C语言中的指针函数:深入探索与应用
|
28天前
|
存储 C++
c++学习笔记06 指针
C++指针的详细学习笔记06,涵盖了指针的定义、使用、内存占用、空指针和野指针的概念,以及指针与数组、函数的关系和使用技巧。
29 0
|
29天前
|
C语言
【C语言】指针速览
【C语言】指针速览
16 0
|
1月前
|
C语言
【C初阶——指针5】鹏哥C语言系列文章,基本语法知识全面讲解——指针(5)
【C初阶——指针5】鹏哥C语言系列文章,基本语法知识全面讲解——指针(5)
|
1月前
|
C语言
【C初阶——指针4】鹏哥C语言系列文章,基本语法知识全面讲解——指针(4)
【C初阶——指针4】鹏哥C语言系列文章,基本语法知识全面讲解——指针(4)