《C语言及程序设计》程序阅读——二维数组与指针

返回:贺老师课程教学链接

(1)

#include <stdio.h>
int aa[3][3]= {{2},{4},{6}};
int main()
{
    int i ,*p=&aa[0][0];
    for(i=0; i<2; i++)
    {
        if(i==1)
            aa[i][i+1]=*p+1;
        else
            ++p;
        printf("%d ",*p);
    }
    return 0;
}

(2)

#include <stdio.h>
int main()
{
    int a[2][3]= {1,2,3,4,5,6};
    int m,*ptr;
    ptr=&a[0][0];
    m=(*ptr) * (*(ptr+2)) * (*(ptr+4));
    printf("%d\n",m);
    return 0;
}

(3)

#include <stdio.h>
int main()
{
    int a[5]= {2,4,6,8,10},*p,**k;
    p=a;
    k=&p;
    printf("%d ",*(p++));
    printf("%d\n",**k);
    return 0;
}
时间: 2024-10-03 20:04:56

《C语言及程序设计》程序阅读——二维数组与指针的相关文章

《C语言及程序设计》程序阅读——二维数组

返回:贺老师课程教学链接 阅读下面的程序,写出输出结果.在阅读中,建议"画"出二维数组,其中有不少精彩的处理手法等待你去发现.(1) #include <stdio.h> int main( ) { int a[6][6],i,j ; for (i=1; i<6 ; i++) for (j=1 ; j<6 ; j++) a[i][j]=(i/j)*(j/i) ; for (i=1; i<6 ; i++) { for (j=1 ; j<6 ; j++)

二维数组与指针-C语言二维数组中的*(p+1)的确切含义

问题描述 C语言二维数组中的*(p+1)的确切含义 各位大师们,烦请指教一二吧.如果是在一维数组中,*(p+1)表示p+1这个地址空间或空间中的值,那么在二维数组中,p+1是指向a[1]*(p+1)是a1这个地址中的值啊?可是为什么会是地址呢? 解决方案 二维数组其实是一个小戏法,本质上还是一维数组--二维下标连续构成的数组又连续构成第一维下标.你可以像遍历一维数组那样遍历它 解决方案二: 其实a[2][3]的调用可以看成是两个调用,首先是对a进行[2]操作,然后再对a[2]的返回值进行[3]操

数组 指针-c语言二维数组的指针问题

问题描述 c语言二维数组的指针问题 在WinTC下运行如下代码 #include void main() { char a1[][5]={"ab","cd","ef","ghi","sfs"}; printf("%sn",*(a1+3)); //语句1 printf("%cn",**(a1+3)); //语句2 } 运行结果为: ghi g 但如果将上述语句1中的%s

直观理解C语言中指向一位数组与二维数组的指针_C 语言

一维数组和指针:对于一位数组和指针是很好理解的: 一维数组名: 对于这样的一维数组:int a[5];  a作为数组名就是我们数组的首地址, a是一个地址常量 . 首先说说常量和变量的关系, 对于变量来说, 用箱子去比喻再好不过了, 声明一个变量就声明一个箱子,比如我们开辟出一个苹果类型的箱子, 给这个变量赋值就是把盛放苹果的箱子中放入一个实实在在的苹果, 这就是变量的赋值.  而对于数组来说, 就是一组类型相同的箱子中,一组苹果箱子, 可以放入不同的苹果. 一维数组空间: 变量被声明后, 我们

二维数组行指针的问题

问题描述 二维数组行指针的问题 问一个比较呆的问题,今天看到了这样一个程序,运行结果是9,我就糊涂了(pa+1)[1]是什么啊 为什么(pa+1)[0]是5呢 那个方括号里的数字指什么呢 我真是彻底晕了 求指教~ #include void main() { static int a[3][4]={1,2,3,4,5,6,7,8,9,10},(*pa)[4]=a; cout<<*(pa+1)[1]<<endl; } 解决方案 #include int main() { int a[

关于指向二维数组的指针编译出错

问题描述 关于指向二维数组的指针编译出错 #include int m; int n; int a[10][10]; void InputArray(int *p, int m, int n); int main(void) { int *(ptr)[10]; ptr=a; printf("Input m,n: "); scanf("%d,%d",&m,&n); InputArray(*ptr,m,n); } void InputArray(int

《C语言及程序设计》程序填空——二维数组

返回:贺老师课程教学链接 1.下面的程序,要输出行.列号之和为3的数组元素,请将程序补充完整. #include <stdio.h> int main( ) { char ss[4][3]= {'A','a','f','c','B','d','e','b', 'C','g','f','D'}; int x,y,z; for (x=0; ______(1)______; x++) for (y=0; ______(2)______ ; y++) { z=x+y; if (______(3)___

《C语言及程序设计》实践项目——二维数组与指针

返回:贺老师课程教学链接 [项目1-二维数组当函数参数]定义一个函数来完成对参数数组中元素的求和工作,函数声明如下: int sum(int array[ ][4],int m,int n); //该函数完成对array数组中的前m行和n列元素求和 在以下程序的基础上,完成对sum函数的定义. #include <stdio.h> int sum(int array[ ][4],int m,int n);//该函数完成对array数组中的前m行和n列元素求和 int main() { int

返回二维数组 语言-关于调用函数返回二维数组的问题

问题描述 关于调用函数返回二维数组的问题 我想调用一个函数,返回二维数组,但是一直不对,写了一个简单的程序,还请各位大神给看一下, #include #include float*q[3];int i,j; int main() { float f[3][2],A[3][2]; float*(TIME(float E[3][2])); for(i=0;i<=2;i++) { for(j=0;j<=1;j++) {f[i][j]=j+i;printf("%fn",f[i][j