指针使用的一些理解,嵌套调用的理解。

在Add函数里面定义*p之后,*p所指的也就是&num,神奇神奇

函数内部改变函数外部,得传指针。


void Add(int* p)
{
	(*p)++;//这个*p就是main函数里面的num,
}

int main()
{
	int num = 0;
	Add(&num);
	printf("%d\n", num);

	Add(&num);
	printf("%d\n", num);

	Add(&num);
	printf("%d\n", num);
	return 0;

}

结果如下

。。。。。

函数的定义和调用

链式访问

printf ("%d\n",strlen("a,b,c"));

一个函数的返回值是另一个函数的起始值;

#include<stdio.h>
#include<string.h>
//int main()
//{
//	char arr1[20] = { 0 };
//	char arr2[] = "bit";
//	strcpy(arr1, arr2);
//	printf("%s\n", arr1);
//	return 0;
//}

///
int main()
{
	char arr1[20] = { 0 };
	char arr2[] = "bit";

	printf("%s\n", strcpy(arr1, arr2));
	return 0;
}

 strcpy (arr1,arr2 ); 是把arr2里面的数据转换到arr1里面去。 

新的函数出现,要记住!

打印结果如下:

头文件也是新的,也要记住

 ,

为什么会是4321,因为 printf  函数返回的是个数值,

printf 43   是返回两个数,  printf 2是返回1,   所以最后结果是4321.

静态库

递归题目

接受一个整型值(无符号),按照顺序打印它的每一位,例如:输入1234,输出1234.

1234%10 = 4 ; 

1234 / 10 = 123 % 10 = 3

123 /10 = 12%10 = 2

12/10 = 1% 10 =  1

1/10 =0;

printf(1234)

printf(123)  4

printf(12)  3  4

printf(1)  2  3  4

// 接受一个整型值(无符号),按照顺序打印它的每一位,例如:输入1234,输出1234.

//怎么做

void print(unsigned int n)
{
	if (n > 9)//大问题拆分
	{
		print(n / 10); //1234/10    %是求余数
	}
	printf("%d ", n % 10);
}

int main()
{
	unsigned int num = 0;
	scanf("%u", &num);
	print(num);
	return 0;

}

过程如图所示:

递归:有递有归;顺着返回下来,再上去。先红线 , 再绿线。

打印结果是:1 2 3 4.

n/10传给n,

递归条件

①存在限定条件,不满足条件,不在继续。

②每次调用递归,越来越接近限制条件

www.stackoverflow.com

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值