| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 507 人关注过本帖
标题:数组指针问题,无聊学习指针编的,运算结果有问题!
取消只看楼主 加入收藏
micholasmalo
Rank: 2
等 级:论坛游民
帖 子:40
专家分:62
注 册:2012-6-22
结帖率:100%
收藏
已结贴  问题点数:15 回复次数:3 
数组指针问题,无聊学习指针编的,运算结果有问题!
请大家帮忙下,错误的问题就是我注释的第一行上的那个元素遍历的时候有问题,地址没错的话,是我的变量b要自减,但是我不会,好像*(m+a)到第三行元素的时
#include <stdio.h>
void max(int n[][4],int v)
{
    int a,b,max=0;
    int *m;
    m=n[0];
    printf("%d\n",*m);
    for(a=0;a<v;a++)
    {
        for(b=1;b<4;b++)
        
        {    max=*(m+a)>*((m+a)+b)?*(m+a):*((m+a)+b);/*这里指针地址对吗,如果是对的,请各位帮忙想下变量b如何在跳到外层循环的时候初始化为1*/

        printf("*(m+a)=%d\t",*(m+a));
        printf("ys=%d\t",*((m+a)+b));
        printf("max=%d\t",max);
        }
                    
    }   
        printf("%d\n",max);
}
void main()
{
    int s[][4]={
        {5,2,3,4},
        {16,27,39,48},
        {33,-1,68,39}
    };
    max(s,3);
}



/*如果指针地址错误,请告诉我怎么表示,最好不要用这样的s[m][n]*/

 /*一个问题是b从新运算不等于1造成的运算错误,或是把*(m+a)指向了max,总觉得执行第二次最外层循环的时候很奇怪,应该是指向第二行大的那个48的元素,但程序好像跳到了第一行第二个元素,大家请仔细看下运算的过程,帮我想想*/
搜索更多相关主题的帖子: max include 如何 元素 
2012-07-23 21:49
micholasmalo
Rank: 2
等 级:论坛游民
帖 子:40
专家分:62
注 册:2012-6-22
收藏
得分:0 
回复 2楼 cnfarer
谢谢斑竹,一开始看你的*4没看明白,后来看后面的才知道二维转一维是行*列长+列,哎,看来基础没学好。。。
2012-07-23 23:07
micholasmalo
Rank: 2
等 级:论坛游民
帖 子:40
专家分:62
注 册:2012-6-22
收藏
得分:0 
回复 3楼 circlemiss
非常感谢,我是基础不好,难免疏漏,前面斑竹的回的没看明白*4是啥东东,你后面回的那条让我明白了~~~其实你的回答才是对我最有用的(就是二维转一维),想给你大分的,但斑竹的脸面是要给的,忘体谅!
2012-07-23 23:11
micholasmalo
Rank: 2
等 级:论坛游民
帖 子:40
专家分:62
注 册:2012-6-22
收藏
得分:0 
回复 7楼 circlemiss
嗯,不过你基础很扎实,请多多指教!
2012-07-23 23:59
快速回复:数组指针问题,无聊学习指针编的,运算结果有问题!
数据加载中...
 
   



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

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