鱼C论坛

 找回密码
 立即注册
查看: 2507|回复: 3

形参实参

[复制链接]
发表于 2022-12-4 16:46:31 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
请问函数调用时定义形参后还需不需要实参?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-12-4 18:00:43 | 显示全部楼层
怎么说呢,视情况而定。
打个比方,这是代码:
def play(animal="dog"):
    print("I am play with",animal)
如果你想要输出"I am play with dog",就不用二次赋值。但如果你想输出"I am play with cat",就应该这样写:
play(animal="cat")
如果这个数据需要实时更新,可以创建一个变量,把数值储存到里面。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-12-5 15:09:29 | 显示全部楼层
asky533 发表于 2022-12-4 18:00
怎么说呢,视情况而定。
打个比方,这是代码:

#include <stdio.h>
#define N 3

struct Student{
        char name[10];
        int num;
        int grade;
};

void DubbleSort(struct Student a[])
{
        struct Student temp;
        int i,j;
        for(i = 0; i < N-1 ; i++)
        {
                for(j = 0; j < N-i-1 ;j++)
                {
                        if(a[j].grade<a[j+1].grade)
                        {    //比较成绩的大小
                            temp = a[j+1];    //成绩大的交换所在的数组元素
                                a[j+1] = a[j];
                                a[j] = temp;
                        }
                }
        }

}
int main(){
        struct Student stu[N];
        int i;
        struct Student *p;
        for(i = 0 ;i<N;i++){
                printf("请输入第%d个学生的信息:\n",i+1);
                scanf("%s%d%d",stu[i].name,&stu[i].num,&stu[i].grade);
        }
       
        p=stu;
        DubbleSort(p);
        for(i = 0;i<N;i++){
               
                printf("排名第%d学生的名字:%s 学号:%d 成绩:%d\n",i+1,stu[i].name,stu[i].num,stu[i].grade);
       
        }

}
这种呢,调用后还需要实参p吗
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-12-5 16:56:52 | 显示全部楼层

调用后实参p已经进入DubbleSort方法中了啊,而且你传入的是一个指针,指向的是同一个内存地址,你后面不需要实参p自然就可以不需要了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-12-26 09:32

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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