C语言如何将指针数组作为函教的参教?

一、问题

如何将指针数组作为函数的参数呢?

二、解答

使⽤字符指针作为函数的参数传递字符串,⼀般传递的只是⼀个字符串,如何传递多个字符串呢?有⼈会想到⼆维数组,但是⼆维数组存储多字符串太浪费存储空间,所以还是使⽤指针数组⽐较好,那么如何使⽤呢,下⾯给出⼀个实例。

cpp 复制代码
char *day_name(char *name[], int n)
{
    char *p1, *p2;
    p1 = *name;
    p2 = *(name + n);
    return ((n < 1 || n > 7) ? p1 : p2);
}
int main()
{
    static char *day[] = {"no day", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday"};
    char *p;
    int i;
    char *day_name(char *day[], int n);
    printf("输入星期数:\n");
    scanf("%d", &i);
    if (i < 0)
    {
        exit(1);
    }
    ps = day_name(day, i);
    printf("星期数对应的英文写法:%2d-->%s\n", i, p);
}

实例程序主函数中定义了⼀个指针数组 day,并对 day 作了初始化赋值。其每个元素都指向⼀个字符串。然后又以 day 作为实参调⽤指针型函数 day_name,在调⽤时把数组名 day 赋予形参变量 day,输⼊的整数i作为第⼆个实参赋予形参 n 。在 day_name 函数中定义了两个指针变量p1 和 p2,p1 被赋⼦ day0 的值(即*day) ,p2 被赋予 dayn 的值即 *(day+n)。由条件表达式决定返回 p1 或 p2 指针给主函数中的指针变量 p,最后输出 i 和 p 的值。

三、总结

节约存储空间是衡量⼀个程序的标准之⼀,尤其对于⼀些⽤户量⼤的程序,⼀个⽤户的少量浪费都将是整个系统最⼤的损失。

相关推荐
吴声子夜歌2 小时前
ApacheCommons——commons-pool2(高性能通用对象池框架)
java·开发语言·apache
kruptos7 小时前
分布式系统怎么“选主“?Raft 共识一次讲清
开发语言·分布式·php·共识算法
吴声子夜歌8 小时前
ApacheCommons——commons-cli(命令行参数解析)
java·开发语言·apache
benchmark_cc9 小时前
REST API 和 Python SDK 应该怎么选?量化交易数据接口选型实战
开发语言·python·数据分析·pandas·量化交易·股票数据·quantdash
王的宝库9 小时前
Go 项目结构:从单文件到标准工程布局
开发语言·后端·golang
Tairitsu_H9 小时前
[C++] 深入理解红黑树:封装set与map
开发语言·c++·set·map·红黑树·模拟实现
泡海椒9 小时前
JQuick-Curl 性能分析:并发场景下的性能表现与调优,第三方接口调用不只要快写也要稳跑
java·开发语言·okhttp
小智老师PMP9 小时前
2026深度解析|PMP第八版与NPDP核心侧重点本质区别(管理类证书怎么选)
开发语言·分布式·算法·职场和发展·产品经理
江畔柳前堤10 小时前
前台·中台·后台:2026年AI原生时代的架构全景图
开发语言·人工智能·算法·机器学习·架构·scala·ai-native
Figo_Cheung10 小时前
Figo基于RNC理论的宇宙演化第七纪元猜想
开发语言·php