鱼C论坛

 找回密码
 立即注册
查看: 2286|回复: 9

void函数问题

[复制链接]
发表于 2014-3-25 21:46:57 | 显示全部楼层 |阅读模式
5鱼币
#include < stdio.h >

void main( )
{
        void chang(int a[], int n);
        int a[5] ={1, 2, 3, 4, 5};
        int i;

        for(i = 0; i < 5; i++)
        {
                printf("%d,", a[i]);
        }
        printf("\n");
        chang(a, 5);

        for(i = 0; i < 5; i++)
        {
                printf("%d\n", a[i]);
        }
        printf("\n");
}

void chang(int a[], int n)
{
        int m, t, i;
        m = (n - 1) / 2;

        for(i = 0; i < m; i++)
        {
                t = a[i];
                a[i] = a[n - i - 1];
                a[n - i - 1] = t;
        }
}
明明是void,为什么会把a数组的值返回到main函数中呀????

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2014-3-25 22:31:42 | 显示全部楼层
为了方便定位,重新整理一下代码
 
#include < stdio.h >

void main( )
{
    void chang(int a[], int n);
    int a[5] ={1, 2, 3, 4, 5};
    int i;
    
    for(i = 0; i < 5; i++)
    {
        printf("%d,", a);
    }
    printf("\n");
    chang(a, 5);
    
    for(i = 0; i < 5; i++)
    {
        printf("%d\n", a);
    }
    printf("\n");
}

void chang(int a[], int n)
{
    int m, t, i;
    m = (n - 1) / 2;
    
    for(i = 0; i < m; i++)
    {
        t = a;
        a = a[n - i - 1];
        a[n - i - 1] = t;
    }
}
a是一个数组,你的第一个for函数就输出错了,他只能输出5次a的首地址,i在这里没有任何意义.
你的思路大概是把a改成a[i],改了之后输出1, 2, 3, 4, 5.事实上还是有错误的.void chang(int a[], int n),这个函数中不是指针,却直接把一个地址赋给了它.程序好多错误的说...
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2014-3-25 23:01:45 | 显示全部楼层

我知道了,是后面的函数改变了a指针地址,所以即使是空函数也照样能达到效果,没你说的那么纠结。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2014-3-26 19:53:32 | 显示全部楼层
指针的话用函数也可以改变的啊
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2014-3-27 10:17:30 | 显示全部楼层
啥话不说,先顶一下先!{:2_25:}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2014-3-27 11:49:30 | 显示全部楼层
对指针的操作就是对内存的操作

评分

参与人数 1鱼币 +2 收起 理由
飞驰吧!少年 + 2 热爱鱼C^_^

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2014-3-27 20:41:05 | 显示全部楼层
水墨君 发表于 2014-3-27 11:49
对指针的操作就是对内存的操作

恩,谢谢点播
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2015-8-7 15:43:28 | 显示全部楼层
{:1_1:}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2015-8-18 09:48:58 | 显示全部楼层
{:1_1:}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2016-5-20 00:33:50 | 显示全部楼层
好久没上了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-27 02:24

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表