| a,传参时不论是按照值还是指针方式传递,形参拿到的都是实参的一份拷贝 | |
| b,形参是在函数调用的时候才实例化,才开辟内存空间 | |
| c,函数调用如果采用传值调用,改变形参不影响实参 |
#include传地址的方式:void chage(int x, int y)//这里称为形参。形参可以与实参一样 { int tmp = 0; tmp = x; x = y; y = tmp; printf("%d %d", x, y); } int main() { int a = 0; int b = 0; scanf("%d %d", &a, &b); chage(a, b);//这里称为实参 return 0; }
这是因为传参时不论是按照值还是指针方式传递,形参拿到的都是实参的一份拷贝
#includevoid ch(int *px, int*py) { int tmp = 0; tmp = *px; *px = *py; *py = tmp; } int main() { printf("实现一个函数来交换两个整数的内容n"); int a = 0; int b = 0; scanf("%d %d",&a,&b); ch (&a, &b);//将地址传过去 printf("%d %dn", a, b); return 0; }
2.利用函数实现乘法口诀表 利用函数来求乘法表和一般求法差不多,就是自己创建一个函数
#include3.函数判断闰年void fun_t(int n) { int i = 0; int j = 0; for (i = 1; i <= n; i++)//控制行 { for (j = 1; j <= i; j++)//控制列 { printf("%d*%d=%-4d", i, j, i * j); } printf("n"); } } int main() { int n = 0; scanf("%d", &n); fun_t(n); return 0; }
#include4.函数判断素数 解题思路:void chg(int year) { if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0) { printf("这一年是闰年n"); } else { printf("这一年不是闰年n"); } } int main() { printf("实现函数判断year是不是润年n"); int a = 0; while(1) { scanf("%d", &a); chg(a); } return 0; }
| a. 函数原型设计 返回值:必须要有返回值,0表示不是素数,1表示是素数 | |
| b . 检测该数据是否为素数 |
#includevoid chg(int num2,int num4) { int i = 0; int j = 0; int count = 0; for (i=num2; i <= num4; i++) { for (j = 2;j < i;j++) { if (i % j == 0) { break; } if(i % j == 1) { printf("%d ",i); count++; break; } } } printf("n在这个区间内一共有 %d 个素数n",count); } int main() { printf("实现一个函数,判断一个数是不是素数。n"); //利用上面实现的函数打印100到200之间的素数。 int num1 = 0; int num3 =0; printf("请输入需要打印素数的区间: "); scanf("%d %d",&num1,&num3); chg(num1,num3); return 0; }



