英俊男孩建坤 发表于 2022-4-6 14:56:01

函数赋值问题

本帖最后由 英俊男孩建坤 于 2022-4-6 14:57 编辑

#include <stdio.h>

void reverse_translate(int date, int src, int dest, char start_hour, char end_hour, char date_result){
    int duration = dest - src;
    int date1 = 25 + date;
    int start = 9 + src;
   
    int start_1 = start / 10;
    int start_2 = start - start_1 * 10;
    start_hour = (char)(start_1 + 48);
    start_hour = (char)(start_2 + 48);
    start_hour = ':';
    start_hour = '0';
    start_hour = '0';
   
    int end = start + duration;                        // 这是有问题的地方
    int end_1 = end / 10;
    int end_2 = end - end_1 * 10;
    end_hour = (char)(end_1 + 48);
    end_hour = (char)(end_2 + 48);
    end_hour = ':';
    end_hour = '0';
    end_hour = '0';

    int month = 4;
    date_result = '2';
    date_result = '0';
    date_result = '2';
    date_result = '2';
    date_result = '-';
    date_result = '0';
    date_result = '-';
    if(date1 > 30){
      date1 -= 30;
      month += 1;
    }
    date_result = (char)(month + 48);
    date_result = (char)((date1 / 10)+48);
    date_result = (char)((date1 - (date1/10) * 10) + 48);
}

int main()
{
   
    char date_result;
    char start_hour;
    char end_hour;
    reverse_translate(1,1,5,start_hour,end_hour,date_result);   // 这是运行方法
    printf("%s\n%s\n%s\n", date_result,start_hour,end_hour);
    return 0;
}

reverse_translate 这个函数里头六个参数前面三个参数输入其他的数字最后的答案储存在最后三个参数头
为啥这个end_hour会输入 date_result的内容???求大神指点

大马强 发表于 2022-4-6 17:10:58

因为因为数组名就是首地址,其实是传入了地址,对地址直接修改

yzzc 发表于 2022-4-8 15:55:41

前3个是数,后面3个是数组地址
你调用函数之后,你函数里面的代码就对数组进行操作了,把存储结果写到数组里了
页: [1]
查看完整版本: 函数赋值问题