C初级_函数2

1. 主函数的参数及用法

1.1 主函数参数也称作命令行参数
eg int main(int argc,char* argv[])
argc argv 都是主函数的参数
1.2 主函数参数的使用方式
(注意第一个文件路径必须是exe路径)
可以把文件移动到exe程序上
可以直接运行
可以win+R 复制exe文件位置 然后输入参数

2. 作用域和变量生命周期

2.1 作用域: 就是变量的有效范围,就是变量可以在哪个范围以内使用。有些变量可以在所有代码文件中使用,有些变量只能在当前的文件中使用,有些变量只能在函数内部使用,有些变量只能在 循环内部使用。
2.2 变量生命周期: 变量从生成到消失的过程
2.3 局部变量: 一般认为{}里面的变量为局部变量
2.4 全局变量: 一般认为{}外定义的变量为全局变量
2.5 局部变量与全局变量的区别与联系
全局变量只有在函数结束之后才会死亡
局部变量只要出了花括号就死掉
同样地,全局变量在整个函数中都可以使用
2.6 变量转递方式
1.通过函数传参
主函数的数据 传递给其它函数
其它函数 返回值 传递给主函数
2.通过全局变量-相互传递参数
如果一个全局变量和局部变量重名 使用的时候
就近原则 看这里的前面 最近全局变量还是局部变量
建议: 不同的变量 根据作用 取不同的名字 方便区分

3. 递归

3.1 递归:一个函数直接调用自己或者间接调用自己
3.2.递归说明:
递归思路:一个问题 拆分成若干个 相同类型,但是规模更小的问题
递归优点:代码非常简洁
递归缺点:可能存在重复计算 未必效率高 层次太多 会消耗内存

特例:只能主函数调用其它函数,其它函数不能调用主函数

4. 说明

1.写函数的时候要提前对所做功能进行分析
(是否需要返回值、是否需要参数、那种计算方式)
2.一个工程里多个项目时,每个项目生成的exe文件都在同一个debug文件夹下
3.对于函数返回值 可以是一个定值 可以是一个变量 可以是一个计算过程

5. 代码展示

#include<stdio.h>
#include<iostream>
#include<string.h>
#include<easyx.h>

float pow3(float x)
{
 return x*x*x;
}//用于计算一个数的立方

void isPrime(int y)
{
 if (y <= 1)
 {
  printf("\n您输入%d的数字不对\n\n",y);
 }
 else if (y == 2)
 {
  printf("\n%d的数是质数\n\n", y);
 }
 else
 {
  for (int i = 2; i <= y; ++i)
  {
   if (y%i == 0)
   {
    printf("\n%d不是质数\n\n",y); break;
   }
   if (i == y - 1)
   {
    printf("\n%d是质数\n\n", y);
   }
  }
 }
 system("pause");
}//用于判断一个数是否是质数

int Faco(int n)
{
 if (n <= 2)return 1;
 return Faco(n - 1) + Faco(n - 2);
}//斐波那锲数列用于展示递归操作

int main(int argc,char* argv[])
{
 printf("\n该部分用于计算一个数的立方值\n");
 float i;
 scanf("%f", &i);
 printf("%f对应的立方值为%f\n\n", i,pow3(i));

 printf("\n该部分用于对一个数进行是否为质数的判断\n");
 int m;
 scanf("%d", &m);
 isPrime(m);

 printf("\n该部分用于说明主函数参数(命令行参数)\n");
 printf("\n产生参数个数为%d\n\n", argc);
 printf("\n请退出程序在主函数外部输入变量");

 if (argc >= 2)
 {
  for (int i = 0; i <= argc; ++i)
  {
   puts(argv[i]);
  }
 }

 printf("\n\n以下代码以斐波那契数列说明递归操作");
 printf("\n\n请输入一个参数,用来计算斐波那契数列值\t");
 int b;
 scanf("%d", &b);
 printf("\n\n第%d项斐波那锲数列的结果是\t%d\n",b,Faco(b));
 
 getchar();
 system("pause");
 return 0;
 }

猜你喜欢

转载自blog.csdn.net/weixin_41743247/article/details/88367552
今日推荐