函数形参运用指针问题

函数形参用指针变量不太会做,函数形参用数组名和用指针变量两者有什么不同,区别是什?

img


的现象和发生背景

用代码块功能插入代码,请勿粘贴截图
运行结果及报错内容
我的解答思路和尝试过的方法
我想要达到的结果

望采纳

您是不是放错板块了,我默认您提问是C,代码如下:

#include<stdio.h>

// 函数声明
int str_length(char *str);
int str_length_array(char str[]);

int main()
{
    char str[] = "Hello, world!";

    // 使用指针作为形参
    int length1 = str_length(str);
    printf("字符串长度 (使用指针作为形参):%d\n", length1);

    // 使用数组名作为形参
    int length2 = str_length_array(str);
    printf("字符串长度 (使用数组名作为形参):%d\n", length2);

    return 0;
}

// 函数定义:使用指针作为形参
int str_length(char *str)
{
    int length = 0;
    while (*str != '\0')
    {
        length++;
        str++;
    }
    return length;
}

// 函数定义:使用数组名作为形参
int str_length_array(char str[])
{
    int length = 0;
    while (str[length] != '\0')
    {
        length++;
    }
    return length;
}

上面的代码定义了两个函数来计算字符串的长度,分别使用了指针和数组名作为函数的形参。

在第一个函数 str_length 中,我们使用了一个指针来遍历字符串并统计长度。在第二个函数 str_length_array 中,我们使用了数组名来遍历字符串并统计长度。