三维-这个指针数组我已经晕菜了

问题描述

这个指针数组我已经晕菜了

#include
#include
void main(void)
{
/*声明创建指针数组*/
int A[2][3][4]={{{1,2,3,4},{5,6,7,8},{9,10,11,12}},{{13,14,15,16},{17,18,19,20},{21,22,23,24}}};

int * pA=A[0][0];                         /*为指针变量赋值*/
for(int i=0;i<2;i++)                      /*第一维*/
    for (int j=0;j<3;j++)                   /*第二维*/
        for(int k=0;k<4;k++)               /*第三维*/
            printf("%d ",*(pA+i*3*4+j*4+k)); /*遍历输出*/
        pA=A[0][0];                                 /*使pA重新指向数组开头*/
        printf("n");
        for(int m=0;m<sizeof(A)/sizeof(int);m++)
        {
            printf("%d ",*pA);
            pA++;
        }
        getch();
        }

我用单步执行。一个一个的问:

首先看图 那个值1245076是什么东西?这不是内存地址啊。

解决方案

int x = (int)(int *)&A[2][3][4];
加上这行,看的很清楚,那个值是地址。

解决方案二:

右击可以选择十六进制或十进制切换。
A[2][3][4]应该是个随机的值。反正是越界的东西,你也不用,不必专研。

解决方案三:

c/c++中数组下标是从0开始的,A[2][3][4]是个随机值。你能正确访问的范围是 000~233,知道吗?

时间: 2024-09-20 00:30:20

三维-这个指针数组我已经晕菜了的相关文章

指针数组与数组指针

指针是用来存放另外一个变量的地址的变量.C语言中,指针被广泛使用.有时是因为非用不可,有时是因为它能让代码更紧凑,更高效.指针也是一个定时炸弹,稍有不慎会导致程序崩溃.另外,指针乱飞也会影响程序的可读性.指针和数组关系密切,基本上能用数组的地方,都可以用指针来实现. 最近在搞GPS和SMS的解析程序,里面主要涉及字符串的解析,如GPS的GPRMC语句的解析,自定义的SMS控制指令的解析,用二维字符数组是可以解决的,但效果比用指针数组差很多,执行效率低和内存使用大.有点吃苦不讨好的意思.下面简单对

指针数组(二)

[例6-25] 对已排好序的字符指针数组进行指定字符串的查找.字符串按字典顺序排列,查找算法采用二分法,或称为折半查找.折半查找算法描述: 1.设按开序(或降序)输入n个字符串到一个指针数组. 2.设low指向指针数组的低端,high指向指针数组的高端,mid=(low+high)/2 3.测试mid所指的字符串,是否为要找的字符串. 4.若按字典顺序,mid所指的字符串大于要查找的串,表示被查字符串在low和mid之间,否则,表示被查字符串在mid和high之间. 5.修改low式high的值

指针数组(一)

前面介绍了指向不同类型变量的指针的定义和使用,我们可以让指针指向某类变量,并替代该变量在程序中使用:我们也可以让指针指向一维.二维数组或字符数组,来替代这些数组在程序中使用,给我们在编程时带来许多方便. 下面我们定义一种特殊的数组,这类数组存放的全部是指针,分别用于指向某类的变量,以替代这些变量在程序中的使用,增加灵活性.指针数组定义形式: 类型标识 *数组名[数组长度] 例如: char *str[4]; 由于[ ] 比*优先权高,所以首先是数组形式str[4 ],然后才是与"*"的

C/C++中字符指针数组及指向指针的指针的含义

就指向指针的指针,很早以前在说指针的时候说过,但后来发现很多人还是比较难以理解,这一次我们再次仔细说一说指向指针的指针. 先看下面的代码,注意看代码中的注解: #include <iostream>#include <string>using namespace std; void print_char(char* array[],int len);//函数原形声明void main(void){//-----------------------------段1----------

C语言语法笔记 – 高级用法 指针数组 指针的指针 二维数组指针 结构体指针 链表 | IT宅.com

原文:C语言语法笔记 – 高级用法 指针数组 指针的指针 二维数组指针 结构体指针 链表 | IT宅.com C语言语法笔记 – 高级用法 指针数组 指针的指针 二维数组指针 结构体指针 链表 | IT宅.com C语言语法笔记 – 高级用法 指针数组 指针的指针 二维数组指针 结构体指针 链表本文由 arthinking 发表于315 天前 ⁄ itzhai.com原创文章 ⁄ C语言 ⁄ 评论数 3 ⁄ 被围观 1,775 views+   指针数组: 在一个数组中,如果它的元素全部都是指针

c语言-关于C语言 指针数组的小问题

问题描述 关于C语言 指针数组的小问题 指针数组赋值(字符串)后,可以单独引用某一个字符串中的第X个字符(单个字符)吗?输出必须用%s 不能用%c ?? 解决方案 楼主是要这种吗? char *str[3] = {"skjf", "sd", "askjfssf"}; printf("%cn", str[0][3]); //打印出f printf("%cn", *(str[2] + 3));//打印出j 解决

C++中的指针、数组指针与指针数组、函数指针与指针函数

C++中的指针.数组指针与指针数组.函数指针与指针函数 本文从初学者的角度,深入浅出地详解什么是指针.如何使用指针.如何定义指针.如何定义数组指针和函数指针,并给出对应的实例演示:接着,区别了数组指针与指针数组.函数指针与指针函数:最后,对最常混淆的引用传递.值传递和指针传递做了区处. C++中一个重要的特性就是指针,指针不仅具有获得地址的能力,还具有操作地址的能力.指针可以用于数组.或作为函数的参数,用来访问内存和对内存的操作,指针的使用使得C++很高效,但是指针也非常危险,使用不当会带来比较

struct-关于C语言结构体指针数组的问题

问题描述 关于C语言结构体指针数组的问题 //结构体struct student{ int iNum; char cName[16]; float fChineseScore; float fMathScore; float fEnglishScore;};typedef struct student STUDENT;//输入void InputTranscript(STUDENT MyClass[] int num){ int i; printf(""请输入学生的成绩信息:n&quo

c语言-关于字符型指针数组的理解问题

问题描述 关于字符型指针数组的理解问题 #include<stdio.h> main() { char *name[]={"zhang","gou","xu","zheng","mao","zhao","li","bai","qing"}; printf("%s ",*name[1]); } 此时