C语言函数
2015-11-27 12:19
393 查看
//
// main.c
// C_03
//
// Created by ibokan on 15/11/27.
// Copyright © 2015年 rick. All rights reserved.
//
#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;
}
// main.c
// C_03
//
// Created by ibokan on 15/11/27.
// Copyright © 2015年 rick. All rights reserved.
//
#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;
}
相关文章推荐
- C语言编程优化运行速度
- 用C语言获取任意文件的长度(可能大于2GB)#define _FILE_OFFSET_BITS 64
- C++的一些收藏blog
- (C++)UrlEncode的标准实现 libcul
- [019]转--C++ operator关键字(重载操作符)
- OpenCV 2.4+ C++ SVM线性不可分处理
- OpenCV 2.4+ C++ SVM介绍
- C++ 全排列函数 std::next_permutation与std::prev_permutation
- C/C++——多态性和虚函数
- C++贪吃蛇——(2)
- C++ 类 实现栈
- C++贪吃蛇——(1)
- C++容器的拷贝注意细节
- C语言string家族函数使用说明及范例
- #if defined和#if !defined(c语言的宏定义)
- c++对ip和端口的处理
- 33.c/c++程序员面试宝典-函数重载
- 转: windows下C++ UI库 UI神器-SOUI
- C++中delete和delete[]的区别
- 汇编语言中的常数