#include <stdio.h>
//全局变量
int ee = 0;
//在main函数的前面,我们需要将程序需要用到的函数,声明或定义出来
//函数的声明
int getSumm(int a, int b);
//有返回值有参数类型
int getMax(int a,int b,int c)
{
//auto
int max = a;
if (max < b)
{
max = b;
}
if (max < c)
{
max = c;
}
return max;
}
//无返回值无参数类型
void print()
{
printf("我是无返回值无参数类型的\n");
}
//有返回值无参数类型
int getSum()
{
int sum = 0 ;
for (int i = 1; i<= 100; i++)
{
sum += i;
}
return sum;
}
//无返回值有参数类型
void printChar(char alphabet)
{
printf("alphabet = %c\n",alphabet);
}
//形参实参例子
void changValue(int x)
{
printf("x 改变之前的值%d\n",x);
x = 999;
printf("x 改变之后的值%d\n",x);
}
//static例子
void test()
{
static int e = 0;
printf("e = %d\n",e);
e++;
}
int main(int argc, const char * argv[]) {
int a = 1;
int b =2;
int c = 3;
int max = a;
if (a< b)
{
max = b;
}
if (max < c)
{
max = c;
}
/*
函数 将一些功能代码隐藏起来,给外部提供接口,我们需要知道函数可以干什么就可以了
使用函数可以实现代码的重用
*/
/*
C语言函数的定义:
语法:
返回值类型 函数名(参数类型 参数名1,参数类型 参数名2,...)
{
实现函数的代码
return 返回值;
}
*/
int getmaxa = getMax(1, 2, 3); //函数的调用
printf("getmaxa = %d\n",getmaxa);
//有返回值有参数类型
//无返回值无参数类型
print(); //函数的调用
//有返回值无参数类型
int getSumNumber = getSum();
printf("getSumNumber = %d\n",getSumNumber);
//无返回值有参数类型
printChar('a');
/*
每个函数都有返回值类型,即类型标识符
void类型表示此函数返回值类型为空
参数列表可以为空
如果一个函数没有参数,它依然要写()
*/
/*
函数的声明
函数的声明与函数头一样,以分号结束
*/
int theSum = getSumm(2, 3);
printf("theSum = %d\n",theSum);
/*
函数的调用
语法
方法名(实参列表)
*/
/*
形参(形式参数),在定义函数的时候使用,并且在整个函数内部可以使用,出了函数之后不能使用
形参:变量、数组
实参(实际参数),在调用函数时使用,通过实际参数,将数据传递给形式参数,然后再经由形式参数传递给函数
实参:同类型的常量、变量、数组元素、表达式、数组
*/
int x = 10;
changValue(x);
printf("x = %d\n",x);
/*
注意:
1.形参和实参在数量、类型、顺序上应该应该严格一致,否则会发生类型不匹配的错误。
2.在函数中对形参做出改变,那么在函数执行完毕后,实参的值是不会发生改变的,因为函数内部所操作的都是实参的副本。
*/
/*
变量的作用域 全局变量 局部变量
全局变量 :定义在我们函数外部的变量称为 全局变量,任何函数都可以使用
局部变量:定义在我们的函数里面的变量称为局部变量
auto static ...
对于auto类型的局部变量出了函数以后不能使用
对static类型的局部变量,能够在程序运行期间一直保持其最后一次被改变的值
*/
for (int i = 0; i <10; i++)
{
test();
}
/*
函数的分类
1.库函数 printf scanf
2.数学库函数 #include<math.h>用 (P103)
3.自定义函数: 用户在程序中需要而编写的函数
*/
//函数的嵌套调用
// int t = getSumm(2, 3);
int value = getMax(getSumm(2, 3), 2, 3);
printf("value = %d\n",value);
/*
C程序源代码格式的一般情况如下:
预编译语句
宏定义常量
函数的声明放在这里
main函数
函数的实现放这里
*/
return 0;
}
int getSumm(int a, int b)
{
//函数的实现
int sum = a+b;
// a++;
// b++;
return sum;
}