-
递归的要点!!
查看全部 -
函数的递归调用:
1、要知道递归的终止条件是什么,比如本题的是当n = 1时;
查看全部 -
参数列表 的写法是 类型+参数名称,每个参数之间用逗号隔开;
参数可以是任意类型,可以是基础数据类型,指针,也可以是结构体类型。
查看全部 -
//定义函数,然后再调用函数
int avg( int a, int b)
{
return ( a + b )/2;
}
//我们在实现函数体的调用,必须在调用之前进行声明。
查看全部 -
#include <stdio.h>
int main(int argc,char **argv)
{
printf("Hello World!\n");
return 0;
}查看全部 -
定义结构体
struct student
student可改
查看全部 -
整数
char,short,int,long,long long
无符号unsigned
浮点float double
查看全部 -
把一个函数变成内联函数呢?只需要在函数前面加 inline 关键字就可以了。
int add(int a, int b);
inline int add(int a, int b)
{
return a + b;
}
内联函数有好处,就是可以节省调用时候的额外开销。但是同时也会造成另外的问题,内联是以代码膨胀为代价而进行的优化,而如果一个函数过长,或者一个函数被调用了好多次,那么显然就不是适合使用内联函数优化。查看全部 -
以,如果要使用这种自己调用自己的方式,就需要满足一定的条件。已经有前人为我们总结出了递归调用的三要素,如下:
1. 递归的终止条件是什么?
这是非常重要的,在递归中,我们必须要设计好这一点,那就是递归什么时候停止。否则就会像前面的例子一样,直接爆栈。
2. 递归被分解后最基本操作是什么?
递归非常适合层级调用关系,每一层都执行相同的操作,这个要素,就是要提取出递归最核心的要素。
3. 递归调用传递的参数
#include<stdio.h>
int fact(int n)
{
if(n==1) {
return 1;
}
else {
return n * fact(n-1);
}
}
int main(int argc,char **argv)
{
int x = 5;
int res = fact(x);
printf("%d\n",res);
return 0;
}这里传递的参数其实除了参数列表,还包括返回值。参数列表表示给下一层调用需要传递什么,返回值表示上一层调用需要返回什么
查看全部 -
#include <stdio.h>
//定义函数
int avg(int a, int b)
{
return a + b / 2;
}
int main(int argc,char **argv)
{
int a = 10;
int b = 20;
int c = avg(a, b); //函数调用
return 0;
}查看全部 -
int length = 100;
int array[length];
int target = 10;
for(int i=0;i<length;i++) {
if(array[i] == target) {
// 找到了
}
}continue
int length = 100;
int array[length];
int target = 10;
for(int i=0;i<length;i++) {
if(array[i] == target) {
continue;
}
printf("array[%d]: %d\n", i, array[i]);
}在这段程序中,当 array[i] == target 的时候,会执行 continue 语句,跳出本次循环,而进入下一次循环,所以本次的 printf 不会被打印,而下一次会继续打印。
查看全部 -
#include<stdio.h>
int main(int argc,char**argv)
{
int array[100];
for(int i=0;i<100;i++){
printf("array[%d]: %d\n", i, array[i]);
}
}查看全部 -
#include <stdio.h>
int main(int argc,char **argv)
{
int * p = (int *)malloc(5 * sizeof(int));
free(p);
return 0;
}
查看全部 -
#include <stdio.h>
int main(int argc,char **argv)
{
int array[5];
*(array + 2) = 1;//等价于array【2】=1
return 0;
}查看全部 -
#include<stdlib.h>
p=(int*)malloc(4)//堆内存首地址在栈内存上
查看全部 -
enum枚举
enum Week
{
Mon, // 星期一
Tue, // 星期二
Wed, // 星期三
Thu, // 星期四
Fri, // 星期五
Sat, // 星期六
Sun, // 星期日
};
int main(int argc,char **argv)
{
Week week = Week::Fri;
return 0;
}查看全部
举报