c语言学习笔记3

形参实例化之后其实相当于实参的一份临时拷贝,改变形参不能够改变实参

int main()
{
    printf("%d", printf("%d", printf("%d", 43)));//打印结果是4321,因为printf的返回值是打印在屏幕上字符的个数。
    return 0;
}

add.h的内容

#ifndef __Add_H__
#define __Add_H__
//函数的声明
int Add(int x, int y);
#endif

add.c的内容

#include "Add.h"
//函数Add的实现
int Add(int x, int y)
{
 return x+y;
}

 函数递归的两个必要条件:

存在限制条件,当满足这个限制条件的时候,递归便不再继续;

每次递归调用之后越来越接近这个限制条件

采用递归实现接受一个整型值(无符号),按照顺序打印它的每一位

void print(num)
{
	if (num > 9)
	{
		print(num / 10);
	}
	printf("%d", num % 10);//该行代码如何打比较困难,可以先假设第一次我们进入print(num/10)这个循环的时候实现了打印123;所以改行代码需要实现打印4
}

int main()
{
	int num=1234;
	print(num);
	return 0;
}

递归编写一个函数reverse_string(char* string)

reverse_string1(char* string)
{
	char tmp = *string;
	int len = strlen(string);
	*string = *(string + len - 1);
	*(string + len - 1) = '\0';
	if (strlen(string + 1) > 1)
	{
		reverse_string(string + 1);
	}
	*(string + len - 1) = tmp;
}

reverse_string2(char* string)
{
	if ((*(string + 1) != '\0'))
	{
		char* tmp = string + 1;
		reverse_string2(tmp);
	}
	printf("%c", *string);//之前*string的*忘记写了,导致每次结果都不一样
}

求斐波那契数

递归方法

int fib1(int n)
{
	if (n <= 2)
		return 1;
	else
		return fib1(n - 1) + fib1(n - 2);
}

传统方法

int fib2(int n)
{
	int result;
	int pre_result;
	int next_old_rsule;
	result = pre_result = 1;
	while (n > 2)
	{
		n -= 1;
		next_old_rsule = pre_result;
		pre_result = result;
		result = next_old_rsule + pre_result;
	}
	return result;
}

静态库的使用

1、xxx.c属性页->配置属性->常规->配置类型:选择静态库

2、生成静态库xxx.lib文件

3、将xxx.h和xxx.lib放到目标.c文件的路径下

//目标.文件
#inlcude"xxx.h"
#pragma conmment(lib,"xxx.lib")//加载头文件和静态库

传地址返回才能改变实参,还有一个办法就是采用全局变量,全局变量具有通性功能,func1()和func2() 都可以使用全局变量func1()对全局变量的修改,func2()也可以看到其修改

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值