标题:求助,是指针的一些表示问题
只看楼主
图灵遇到偏见
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2017-11-10
结帖率:100%
 问题点数:0 回复次数:8 
求助,是指针的一些表示问题
程序代码:
#include<stdio.h>
#define n 2
#define m 2
void copy(double *array,double *array1);//两个指针指向数组

int main()
{
    int j,k;
    double array[n][m]={{1,2},{3,4}};
    double array1[n][m];
    for(j=0;j<n;j++)
    {
        for(k=0;k<m;k++)
        {
            printf("%.1f",array[j][k]);//打印第一个数组
        }
    }
    copy(array,array1);
    return 0;
}
void copy(double *array,double *array1)
{
    int j,k,temp;
    for(j=0;j<n;j++)
    {
        for(k=0;k<m;k++)
        {
            (array1+j)+k = (array+j)+k;//将第一个二维数组拷贝至第二个二维数组,此处有问题。
        }
    }
    for(j=0;j<n;j++)
    {
        for(k=0;k<m;k++)
        {
            printf("%.1f",(array+j)+k);//打印第二个二维数组
        }
    }
    return;
}
这是一个二维数组拷贝问题的程序,本可以用数列表示法完成,但是我指针不行,于是就用指针表示法,可是表示出了一些问题。
搜索更多相关主题的帖子: 指针 double array for 维数 
2017-12-27 15:55
虫眼
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:10
帖 子:314
专家分:1121
注 册:2017-11-29
得分:0 
这个指针不能在左边
2017-12-27 17:47
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:432
帖 子:10064
专家分:41463
注 册:2014-5-20
得分:0 
#include<stdio.h>
#define n 2
#define m 2
void copy(double *array,double *array1);//两个指针指向数组

int main()
{
    int j,k;
    double array[n][m]={{1,2},{3,4}};
    double array1[n][m];
    for(j=0;j<n;j++)
    {
        for(k=0;k<m;k++)
        {
            printf("%.1lf ",array[j][k]);//打印第一个数组
        }
        printf("\n");
    }
    copy(*array,*array1);
    return 0;
}
void copy(double *array,double *array1)
{
    int j,k,temp;
    for(j=0;j<n;j++)
    {
        for(k=0;k<m;k++)
        {
            *(array1+j*m+k) = *(array+j*m+k);//将第一个二维数组拷贝至第二个二维数组,此处有问题。
        }
    }
    for(j=0;j<n;j++)
    {
        for(k=0;k<m;k++)
        {
            printf("%.1lf ",*(array+j*m+k));//打印第二个二维数组
        }
        printf("\n");
    }
    return;
}
2017-12-27 20:58
虫眼
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:10
帖 子:314
专家分:1121
注 册:2017-11-29
得分:0 
老大,写错了
printf("%.1lf ",*(array+j*m+k));//打印第二个二维数组
这是第1个
2017-12-27 21:27
图灵遇到偏见
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2017-11-10
得分:0 
多谢大佬们,多谢版主
2017-12-28 09:40
图灵遇到偏见
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2017-11-10
得分:0 
能给我解释一下  那个*(array1+j*m+k)为什么还有m   :)。
2017-12-28 09:44
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:432
帖 子:10064
专家分:41463
注 册:2014-5-20
得分:0 
以下是引用图灵遇到偏见在2017-12-28 09:44:05的发言:

能给我解释一下  那个*(array1+j*m+k)为什么还有m   :)。

array1+j*m 是每行第一个元素的地址。
2017-12-28 09:57
图灵遇到偏见
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2017-11-10
得分:0 
明白了哦
2017-12-28 15:09
liaohs
Rank: 4
等 级:业余侠客
威 望:7
帖 子:61
专家分:292
注 册:2017-11-26
得分:0 
对于二维数组,没必要使用指针。
虽然可以这样用,但没有实用价值。
2017-12-30 22:02



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-483759-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.046310 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved