`

关于二维指针的初始化

    博客分类:
  • C++
 
阅读更多
一个初级的问题:

char *a; char **arr, **firstPos;

a = (char *) malloc(8);

strcpy(a,"123");

arr = & a;

firstPos = arr;

arr ++;

a = (char *) malloc(8);

strcpy(a,"456");

arr = & a;

运行发现 第二次 arr = &a 之后, *firstPos 的值也变成了"456"

原因在于:

arr 中存放的是a 的地址(一直不变的) Initialization 的方法 1. char *a[] = {"123", "456",NULL}; char **arr; arr = a; 2.int **array1 = (int **)malloc(nrows * sizeof(int *)); for(i = 0; i
分享到:
评论

相关推荐

    二维指针的详解

    通过具体示例展示了如何初始化和使用二维指针,以及如何正确处理字符数组,以避免出现乱码等问题。了解并掌握这些知识点对于深入学习C语言或进行高效编程具有重要意义。特别是在实际项目开发中,合理利用二维指针...

    C语言二维数组初始化-收藏学习.docx

    ### C语言二维数组初始化 #### 一、二维数组的基本概念 在C语言中,二维数组是一种数据结构,它由多个相同类型的一维数组组成。二维数组可以被看作是一个矩阵,其中包含行和列。例如,一个3×4(3行4列)的二维...

    c++ 二级指针与二维数组之间值操作

    例如,如果有一个二维数组`char arr[3][4]`,那么初始化二级指针可以写为`ptr = arr`。 3. **通过二级指针访问二维数组**: 使用二级指针访问二维数组的某个元素时,需要两次解引用。首先,使用`*`运算符解引用到...

    c语言二维数组初始化 (3).zip

    本篇将深入探讨C语言中的二维数组初始化,包括基本概念、初始化方式以及相关的编程技巧。 1. 基本概念 二维数组由一个行数和列数确定,表示为`类型 名称[行数][列数]`。例如,一个3行4列的整型数组可以声明为`int ...

    二维数组与二重指针(整理)

    然后,需要将每一行的指针初始化,例如 `for (i = 0; i ; i++) connect[i] = new int[N];`。这样,二维数组 `connect` 就可以被传递到函数中。 在函数中,二维数组可以被访问和修改,例如 `travel(int matrix, int ...

    c语言二维数组初始化的几种常用方法

    初始化二维数组是编程中的一项基本操作,下面我们将详细介绍几种常用的二维数组初始化方法。 1. **静态初始化** 静态初始化是在声明数组时直接提供元素值的方法。对于二维数组,我们可以直接在声明时给出每一行的...

    二维数组声明初始化描述

    声明并初始化二维数组(在声明时初始化): int arr[3][4] = { {1, 2, 3, 4}, {5, 6, 7, 8}, {9, 10, 11, 12} }; 在这个例子中,arr 是一个 3x4 的二维数组。 仅声明二维数组(稍后在代码中初始化): int...

    用指针实现二维数组的转置

    int original[ROWS][COLS] = { /* 初始化原数组 */ }; int (*transposed)[COLS] = new int[ROWS][COLS]; // 转置 transpose((int*)original, (int*)transposed, ROWS, COLS); // 输出转置后的数组 for (int ...

    维数组初始化的几种方法.docx

    这实际上是一个指向3x4二维数组的指针,但未初始化。 三、多维数组初始化 1. 指针方式: ```cpp int * value = new int[m][3][4]; ``` 这种方式创建了一个m行3列4层的多维数组,其中m可以是变量,但后面的维度必须...

    二维数组 二级指针以及数组指针的讨论

    - 指针初始化的重要性。 - 二维数组的物理布局。 - 指向指针的指针的概念及其应用。 - 动态分配二维数组的例子。 ##### 1. 指针初始化 虽然没有硬性规定指针必须初始化,但从良好的编程习惯出发,建议在使用之前...

    第讲-C语言二维数组与指针优秀文档.ppt

    二维数组的初始化可以使用不同的方式,例如全部初始化、部分初始化、按元素排列顺序初始化等。例如:int a[2][3] = {{1,2,3},{4,5,6}};、int a[2][3] = {1,2,4};、int a[][3] = {{1},{4,5}};等。 二维数组和指针...

    二维数组作为函数形参的两种方法

    因此,当我们传递一个二维数组的名称给函数时,实际上是传递了一个指向该数组第一行首元素的一维指针。下面是一个简单的示例: ```cpp // 定义函数,通过指针接收二维数组 void sum2DArray(int (*arr)[3][3], int ...

    基于数组指针实现二维数组中最小值所在行的查找与显示程序

    1. **初始化二维数组**:定义了一个二维数组 `a[M][N]`,并初始化了数组的值。 2. **定义数组指针**:定义了一个指向长度为 `N` 的整型数组的指针 `int (*p1)[N];`。 3. **遍历二维数组**:通过 `p1` 遍历二维数组的...

    C语言二维数组编程练习

    1. **数组初始化**:如何声明并初始化一个二维数组,包括静态初始化和动态分配内存。 2. **遍历数组**:使用for循环遍历二维数组的所有元素,进行简单的操作,如打印或计算。 3. **指针操作**:使用指针遍历数组,...

    C++中二维数组与指针关系的剖析.pdf

    因此,在编程实践中,应确保指针的正确初始化和使用,避免野指针和超出数组边界的情况发生。 #### 结论 综上所述,C++中二维数组与指针之间的关系是紧密相连的。掌握这一关系不仅能够帮助开发者更好地理解和利用...

    初始化5X5的二维int类型数组,并将其转置

    在这个问题中,我们有两个主要的任务:一是创建一个0到255的UNICODE编码表,二是初始化一个5x5的二维int类型数组并进行转置。 首先,让我们详细了解一下UNICODE编码。UNICODE是一种字符编码标准,它为世界上几乎...

    语言二维数组与指针PPT课件.pptx

    在这个PPT课件中,主要讨论了二维数组的定义、初始化以及与指针的关系。 首先,二维数组的定义格式是`数据类型 数组名[常量表达式1][常量表达式2]`。例如,`int a[3][2]`定义了一个包含3行2列的整型二维数组。数组...

    语言二维数组与指针PPT学习教案.pptx

    综上所述,二维数组是编程中常用的数据结构,其特性包括行优先的存储方式、多样的初始化方法以及与指针的紧密联系。理解这些概念有助于编写涉及二维数组的高效代码。在实际编程中,二维数组常被用于处理表格数据、...

    动态二维数组 c#编程

    在C#编程中,动态二维数组是一种非常重要...以上就是关于C#编程中动态二维数组的基本知识,希望对你理解和使用动态二维数组有所帮助。在实际编程中,应根据具体需求选择合适的数据结构,以实现最优的性能和代码可读性。

    读取二维数组所有数据_labview读取数组_

    本教程将深入探讨如何在LabVIEW中有效地读取二维数组的所有数据,这对于数据分析、处理和可视化至关重要。 首先,让我们理解二维数组的基本概念。二维数组类似于一个表格,由行和列组成,每个元素都有其特定的行和...

Global site tag (gtag.js) - Google Analytics