20240716


使用递归实现斐波那契数列

1 1 2 3 5 8.....

#include <stdio.h>
#include <string.h>
#include <stdlib.h>

int fun(int n)
{
    if(n==0||n==1)
        return 1;
    else
        return fun(n-1)+fun(n-2);
}

int main(int argc, const char *argv[])
{
    int n;
    printf("please enter n:");
    scanf("%d",&n);

    int arr[n];

    for(int i=0;i<n;i++)
    {
        *(arr+i)=fun(i);
    }

    for(int i=0;i<n;i++)
    {
        printf("%d ",*(arr+i));
    }
    return 0;                           
}

ubuntu@ubuntu:~/wei/7.16/t1$ gcc 07.c 
ubuntu@ubuntu:~/wei/7.16/t1$ ./a.out 
please enter n:10
1 1 2 3 5 8 13 21 34 55 


8


 

void test1()
{
    char str0[10];
    char* str1 = "0123456789";
    strcpy(str0,str1);//把str1指向的字符串赋值给str0,str1的字符串大小为11,str0大小为10,会数据溢出
}

void test3(char* str1)
{
    char str0[10];
    if(strlen(str1)<=10)//str1字符串的长度为10的时候,加上结束符\0,大小为11,会数据溢出
    {
        strcpy(str0,str1)
    }
}

数组:数组在声明时需要指定大小,并且一旦声明,其大小就不能改变。数组名是一个常量指针,指向数组的第一个元素的地址。数组可以通过索引来访问其元素,例如 arr[0]

指针:指针是一个变量,它存储另一个变量的内存地址。指针的大小是固定的,与它指向的数据类型无关。指针可以被重新赋值为任何其他变量的地址。可以通过指针来访问和修改它所指向的变量的值,使用解引用操作 *p.


static修饰的局部变量,会延长生命周期,延长至本文件有效,不是作用域

普通的局部变量,申请的内存会随着作用域的结束被释放

static修饰的全局变量,其他文件不可以跨文件访问该变量;

static修饰的函数,生命周期至本文件有效,且只能在本文件调用,不可以跨文件调用;普通函数可以跨文件调用

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值