`
wss71104307
  • 浏览: 223025 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

在北邮 bbs上看到一个理解指针,指针数组不错的题目

BBS 
阅读更多
#include <stdio.h>

int main(void) {
    int a[]={1,2,3,4,5};
    int * p=(int *)&a+1;

    printf("*(a+1)=%d\n",*(a+1));
    printf("*p=%d",*(p-1));-

}

 输出为:

*(a+1)=2
*p=5

 

Explain:

 a的类型为int [],&a的类型为 int(*)[],&a+1指向数组的下一行,p为int *,所以指向&a+1(a的第二行)的首地址,p-1则指向a的第一行的最后一个元素

Explored:

   a为指向数组的指针,类型为int型,&a为a的地址,为指针数组,指针+1,根据指针不同的类型来判断加的具体数组  (type * p, p+1=p+size(type).

分享到:
评论

相关推荐

    彻底理解指针,指针数组和数组指针,指针函数和函数指针

    ### 彻底理解指针,指针数组和数组指针,指针函数和函数指针 #### 一、基础知识 在计算机编程中,指针是一个非常重要的概念,尤其是在C/C++这样的语言中更是如此。简单来说,指针是一种变量,但它存储的不是普通的...

    数组指针和指针数组的区别

    首先,指针数组是一个数组,其中每个元素都是指针,数组占多少个字节由数组本身决定。例如:int *p1[10];这里,p1 是一个指针数组,包含 10 个指向 int 的指针。 而数组指针是一个指针,它指向一个数组。例如:int ...

    数组和指针练习题目(精选)

    在C语言中,数组的名称实际上是一个指向数组首元素的指针。例如,`int a[5];` 就定义了一个整型数组 `a`,其名称 `a` 就是一个指向数组首元素的指针。 选择题 [8.1] 若有定义:`int x,*pb;` 则在以下正确的赋值...

    指针数组与数组指针与二级指针

    例如,通过动态分配一个指针数组,我们可以创建一个可变大小的矩阵,而无需预先知道其确切的维度。同样,数组指针可以用于遍历一维数组,即使数组的长度在运行时未知。 通过理解指针数组、数组指针和二级指针,我们...

    指针数组与数组指针

    在这个例子中,`p`是一个指针数组,其中的每个元素`p[0]`, `p[1]`, `p[2]`分别指向了数组`a`的每一行的首地址。 #### 总结 - **数组指针**:用于指向一个固定大小的一维数组,其移动的步长取决于数组的大小。 - **...

    数组的指针和指向数组的指针变量

    数组的指针和指向数组的指针变量是编程语言中一个重要的概念。数组的指针是指向数组在内存中的起始地址,而指向数组的指针变量是指向数组元素的指针变量。 概念: * 数组的指针:数组在内存中的起始地址,数组元素...

    指针数组与数组指针总结更新

    这意味着,指针数组可以用来存放指针数据,每一个元素都是一个指针,而这些指针可以指向不同的数据类型。比如,指针数组中的元素可以是整型指针(int*),字符指针(char*),或者是其他类型的指针。在实际应用中,...

    C++指针与指针数组的两个实例 可运行

    在这个例子中,我们创建了一个指针数组`ptrArray`,并将`arr`数组的每个元素地址赋值给它。通过指针数组,我们能够不直接操作`arr`而改变其元素的值,这在处理大型数据结构时尤其有用。 这两个实例揭示了指针在C++...

    数组与指针区别(很全面)

    - 数组在内存中连续存储,而指针本身仅占用固定大小的空间(例如,在32位系统中通常是4个字节,在64位系统中通常是8个字节)。 - 指针可以指向数组的任意位置,而数组名始终指向数组的第一个元素。 2. **灵活度**...

    指针的用法大全,指针与数组,指针详解

    指针与指针数组也是常见的组合,指针数组可以存储一系列的指针,这样可以方便地管理和操作一组对象。例如,`int *ptrs[10];`定义了一个可以存储10个整型指针的数组。 最后,要特别注意指针的生命周期和空指针。未...

    数组指针和指针数组

    在C语言中,声明一个数组指针和指针数组时,需要特别注意指针和数组的优先级问题。在声明中,“[]”的优先级比“*”要高,因此需要正确使用括号来区分这两种结构。例如,声明指针数组时,应该写作“int *p1[10]”,...

    指针, 指针的指针, 数组, 指针数组, 数组指针, 指针函数, 函数指针 CC++中函数指针的含义

    指针数组是一个数组,其每个元素都是一个指针。比如,`int *p[10];` 定义了一个包含10个整数指针的数组,每个元素可以指向不同的整数变量。 5. **数组指针**: 数组指针是一个指针,它可以指向一个数组。例如,`...

    彻底了解指针数组,数组指针以及函数指针

    需要注意的是,指针数组本身是在栈上分配的,而每个指针指向的内存则需要另外分配。可以通过循环为每个指针分配内存,例如: ```c for (int i = 0; i ; i++) { a[i] = new int; // 在C语言中应该使用malloc() } ``...

    C++指针 数组 内存释放.docx

    C++指针数组内存释放 C++指针是一种基本变量,包含一个实际的数据,该数据代表一个可以找到实际信息的内存地址。指针是C++编程中非常重要的概念,许多程序和思想依靠指针作为他们设计的基础。 定义指针变量 定义...

    c语言指针数组-·详解数组指针与指针数组

    2. 指针数组:指针数组则是一个数组,其每个元素都是一个指针,例如`int *p[5]`。这意味着`p`是一个数组,数组的每个元素可以存储一个整型指针。在这种情况下,`p`不直接指向整个数组,而是指向数组中的五个指针。 ...

    C++习题 6数组与指针

    - **数组名与指针常量**:数组名在表达式中自动转换为指向数组第一个元素的指针常量。 - **不可改变的地址**:数组名中存放的地址是不可改变的,所以数组名称为指针常量。 - **丢失的数组信息**:使用数组名作为指针...

    C++指针数组、数组指针、数组名及二维数组技巧汇总

    本文较为详细的分析了关于理解C++指针数组,数组指针,数组名,二维数组的一些技巧。是比较重要的概念,相信对于大家的C++程序设计有一定的帮助作用。 一、关于数组名 假设有数组: int a[3] = {1, 2, 3} 1.数组...

    指针与数组.docx 指针数组:数组类型 *数组名数组长度

    1. **指针数组**:这种结构是一个数组,其每个元素都是一个指针。例如,`int *parr[5]` 定义了一个包含5个元素的指针数组,每个元素都是指向整型数据的指针。我们可以将它想象为一个存储5个整型指针的容器,元素包括...

Global site tag (gtag.js) - Google Analytics