h-b-z-d-j-s-m 发表于 2022-12-4 16:46:31

形参实参

请问函数调用时定义形参后还需不需要实参?

asky533 发表于 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")
如果这个数据需要实时更新,可以创建一个变量,把数值储存到里面。

h-b-z-d-j-s-m 发表于 2022-12-5 15:09:29

asky533 发表于 2022-12-4 18:00
怎么说呢,视情况而定。
打个比方,这是代码:



#include <stdio.h>
#define N 3

struct Student{
        char name;
        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.grade<a.grade)
                        {    //比较成绩的大小
                          temp = a;    //成绩大的交换所在的数组元素
                                a = a;
                                a = temp;
                        }
                }
        }

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

}
这种呢,调用后还需要实参p吗

homeskating 发表于 2022-12-5 16:56:52

h-b-z-d-j-s-m 发表于 2022-12-5 15:09
#include
#define N 3



调用后实参p已经进入DubbleSort方法中了啊,而且你传入的是一个指针,指向的是同一个内存地址,你后面不需要实参p自然就可以不需要了
页: [1]
查看完整版本: 形参实参