文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>数据驱动思想 & c语言返回值为数组

数据驱动思想 & c语言返回值为数组

时间:2010-09-14  来源:huazaicola

编程思想:数据驱动(Data-drive Programming)  

#include <stdio.h>
#include <stdlib.h>
char *date(int day)
{
        static char days[8][10]={"","Monday","Tuesday","Wednesday",
                "Thursday","Friday","Saturday","Sunday"};
        if(day > 1 || day < 8)
                return days[day];
        else
        {
                printf("illegal day number!\n");
                exit (1);
        }
}
int main(void)
{
        printf("%s",date(2));
        return 0;
}

与switch-case方式对比,这种方式代码简洁,可读性强。

有一点要注意:

在被调用的函数中定义的局部变量是在堆栈上分配的,函数退出后,变量所在的内存已经释放,所以不能返回局部变量的指针。如:
int   *   function()
{
int   a[10];
...
return   a;       //错误!
}

c语言,使用数组做返回值的方法:

方法1,用静态变量进行返回
char *SubFunction(void)
{
static char szText[5] = "adfa"; // 用静态空间
//对p进行赋值操作
return szText;
}

// 方法2,用指针传递
void SubFunction(char *pText1, char *pText2)
{
// 对pText1, pText2运算
strcpy(pText1, "love");
strcpy(pText2, "you");
return;
}

方法3:使用返回指针方法

#include <stdio.h>
#include <string.h>
#include <malloc.h>
char *fun()
{
    char * a = (char *)malloc(sizeof(char)*8);
    strcpy(a, "nihao");
    return a;
}
main()
{
char *b;
b = fun();
printf("%s",b);
free(b);
}


注意:1.free(b),2.a的赋值方式

相关阅读 更多 +
排行榜 更多 +
辰域智控app

辰域智控app

系统工具 下载
网医联盟app

网医联盟app

运动健身 下载
汇丰汇选App

汇丰汇选App

金融理财 下载