C语言进阶——函数

瘦欲@ 提交于 2020-03-01 16:54:49

Sunshine__sunny的快乐码奴生活

函数的声明,实现与调用


  • 模块化
    封装代码块
    函数就是代码块
    { } == 独立空间
    功能模块:一个功能对应一个函数
函数名(type param1,type param2)
 {
    代码块
    return ;
 }
  • 驼峰命名法
    add download parse
    scaleImageToSize
 int add(int a, int b)
 {}
  • 定义函数的两种方式
    1.声明和实现一起
int add(int a, int b){
    int sum = a + b;
    return sum;
}
  1. 先声明 后实现(通常使用这种方式)
    通过调用函数的函数名
int minus(int a, int b);

int minus(int a, int b){
    return a - b;
}

main.cpp

#include <stdio.h>
#include "Calulator.h"
//1.程序的入口函数 
//main.cpp 是为了让阅读者知道这里写的是入口函数 

// 2.将不同的功能模块用  .h  .cpp 来封装
//.h  头文件   函数声明  不可实现
// .cpp   .c  实现文件  函数的具体实现{} 

//3.导入头文件进行使用 
int main()
{
	printf("1 + 1 = %d\n",add(1,1));
	printf("3 - 1 = %d\n",minus(3,1));
	printf("2 * 1 = %d\n",multiply(2,1));
	printf("4 / 2 = %d\n",devide(4,2));
    return 0;
}

Calulator.h

#include <stdio.h>

//头文件里面声明函数

int add(int a,int b);//加法 
int minus(int a,int b);//减法 
int multiply(int a,int b);//乘法 
int devide(int a,int b);//除法 

Calulator.cpp

  • 实现文件
    1.先导入需要实现的头文件
    2.实现这个头文件里的所有方法
#include "Calulator.h"

int add(int a,int b)
//加法 
{
	return a + b;
}
int minus(int a,int b)
//减法
{
	return a - b;
 } 
int multiply(int a,int b)
//乘法
{
	return a * b;
 } 
int devide(int a,int b)
//除法
{
	if(b == 0)
	{
		return 0;
	}
	else
	{
		return a / b;
	}
 } 
  • 常量字符串的内存空间由系统自动分配
  • 在常量区里面分配
    当程序结束时才会被释放
常量区 常量const int a = 1;
静态区 static 从程序开始到程序结束
局部变量 int a = 10; 离开作用域就自动收回
自己申请的内存 malloc calloc realloc 必须自己释放
#include <stdio.h>
char* test(){
	char *name = "jack";
	return name;
} 
int main(){
	char *p ;
	p = test();
	printf("%s\n", p);
	return 0;
}
char *test1(){
	char name[10] = {'j','a','c','k'};
	return name;
} 
int main(){
	char *p ;
	p = test1();
	printf("-%s\n", p);//错误!!!!此时p为野指针  因编译器不同 会报错或打印出未知的指向的内容
	return 0;
}
 int count = 0;//需定义为本文件的全局变量 
 void test3()
 {
 	count ++;
 	printf("count:%d",count);
 }
 
 int main()
{
	test3();
	test3(); 
	return 0;
 }
  • 一个函数想记录自己被调用的次数
  • 静态变量
    只被定义一次
    生命周期:从开始到结束 和全局变量类似

 void test3()
 {
 	
 	static int count = 0;
 	count ++;
 	printf("count:%d\n",count);
 }
 int main()
{
	test3();
	test3(); 
	return 0;
 }
 
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!