c语音定义函数内指针赋给主函数再调用的问题

img

求指点,为何不能把s函数返回值k的地址赋给p,再由p作为k,输出字符数组k的全部元素。

你 s函数的返回值是 int 类型,怎么能返回 char类型的数组 k 呢?

我改了一下,参考如下:

#include<stdio.h>


char* s(char a[])
{
    char k[1024] = {'0'};
    int i = 0, j = 0;
    while (a[i] != '\0')
    {
        char ch = a[i];
        if (ch == 'a' || ch == 'e' || ch == 'i' || ch == 'o' || ch == 'u')
            k[j++] = ch;
        i++;
    }

    char *kk = k;

    return kk;
}

int main() 
{
    char a[1024];
    gets(a);

    printf("%s\n", a);

    char *p;

    p = s(a);

    printf("%s\n", p);

    return 0;
}

img


如有帮助,欢迎采纳哈!

在这里插入图片描述

本人的开源项目,欢迎star支持下!!!