标题:void 的返回值问题
取消只看楼主
第二周杰伦
Rank: 2
等 级:论坛游民
帖 子:55
专家分:20
注 册:2013-3-23
结帖率:88.89%
已结贴  问题点数:20 回复次数:6 
void 的返回值问题
如何发帖提问
搜索更多相关主题的帖子: void 如何 
2013-03-23 18:55
第二周杰伦
Rank: 2
等 级:论坛游民
帖 子:55
专家分:20
注 册:2013-3-23
得分:0 
回复 2楼 yuccn
你好
程序如下:
 #include <stdio.h>
main()
{
    void reverse(int a);
    int number;
    printf("input one number:\n");
    scanf("%d",&number);
    printf("reverse number:\n");
    reverse(number);
    printf("\n");


}
void reverse(int a)
{
    int c,i;
    for(i=0;a!=0;i++)
    {c=a%10;
     printf("%d ",c);
     a=a/10;
    }
}
在一个函数前面加上void就是定义该函数为空类型,就是别的函数调用该函数时,该函数不给返回值。
为什么明明加了void还能输出值呢?
我就是那样理解的?看了好多资料,都是说给函数前面加void是该函数没有返回值,那么该函数的作用自然就不起作用?
还有如何发帖提问?我有好多想不通的问题。
谢谢指教!
2013-03-25 10:36
第二周杰伦
Rank: 2
等 级:论坛游民
帖 子:55
专家分:20
注 册:2013-3-23
得分:0 
回复 2楼 yuccn
回复 2楼 yuccn
你好
程序如下:
#include <stdio.h>
main()
{
    void reverse(int a);
    int number;
    printf("input one number:\n");
    scanf("%d",&number);
    printf("reverse number:\n");
    reverse(number);
    printf("\n");


}
void reverse(int a)
{
    int c,i;
    for(i=0;a!=0;i++)
    {c=a%10;
     printf("%d ",c);
     a=a/10;
    }
}
在一个函数前面加上void就是定义该函数为空类型,就是别的函数调用该函数时,该函数不给返回值。
为什么明明加了void还能输出值呢?
我就是那样理解的?看了好多资料,都是说给函数前面加void是该函数没有返回值,那么该函数的作用自然就不起作用?
还有如何发帖提问?我有好多想不通的问题。
谢谢指教!
2013-03-25 10:38
第二周杰伦
Rank: 2
等 级:论坛游民
帖 子:55
专家分:20
注 册:2013-3-23
得分:0 
回复 8楼 qunxingw
谢谢。
2013-03-25 10:40
第二周杰伦
Rank: 2
等 级:论坛游民
帖 子:55
专家分:20
注 册:2013-3-23
得分:0 
回复 4楼 pengyancai
谢谢!
2013-03-25 10:41
第二周杰伦
Rank: 2
等 级:论坛游民
帖 子:55
专家分:20
注 册:2013-3-23
得分:0 
回复 6楼 wp231957
问一个问题:
#include <stdio.h>
#define N 10
void sort(char a[])
{
    int i,j;
    char c;
    for(i=0;i<N;i++)
    {
        for(j=0;j<N-1;j++)
            if(a[j]<a[j+1])
            {c=a[j];a[j]=a[j+1];a[j+1]=c;}
    }

}

main()
{
    char str[N];
    int i;
    printf("input 10 character:\n");
    for(i=0;i<N;i++)
        scanf("%c",str+i);
    sort(str);
    printf("input new array:\n");
    for(i=0;i<N;i++)
        printf("%c",*(str+i));
    printf("\n");
}
为什么上面那个函数“  void sort(char a[])   ”要定义成void?这是我写的程序实现十个字符的比较。
我的问题是我的函数“sort(str);”函数实参是数组名,被调用函数形参也是数组,这样,相当于两个数组对同一段内存操作。在被调用函数中是对单元内容的操作。这个时候我就不明白了,我没有return返回语句,我的函数只是在实现一组字符大小的排序。没有return那样的返回动作,我的函数应该定义成什么类型?
也就是的我的函数只是进行有关一些指针操作,没有返回值,那么这个时候我的函数应该定义成什么类型。
谢谢!
2013-03-25 11:10
第二周杰伦
Rank: 2
等 级:论坛游民
帖 子:55
专家分:20
注 册:2013-3-23
得分:0 
回复 4楼 pengyancai
你好,首先表示感谢。
有几个问题请教一下:
1 用“scanf”和‘gets’这两个函数输入时,按什么键结束输入。如果我用‘gets’函数输入一句话到一个字符数组。比如“I am student.”中间有空格应如何输入?
谢谢!
2013-03-25 11:19



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




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

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