echo_chenchen 2022-09-09 13:05 采纳率: 80.2%
浏览 35
已结题

写了mycmp函数,想知道运行结果是怎么来的



```c

#define  _CRT_SECURE_NO_WARNINGS
#include <stdio.h>;
#include<string.h>;

int mycmp(char const* s1, char const* s2)
{
    while (*s1 == *s2 && *s1 != '\0')
    {
        s1++;
        s2++;

    }
    return *s1 - *s2;
    printf("%d", *s1 - *s2);
}
int main(int argc, char const* argv)
{
    char s1[] = "a,b,c";
    char s2[] = "a,b,c,d";
    /*printf("%d", strcmp(s1, s2));*/
    printf("比较s1s2大小%d", mycmp(s1, s2));
        mycmp(s1, s2);
        return 0;
}
//问题一:运行结果是-44,想知道原因
//问题二:*s1,*s2的含义是什么
//这里s1,s2不是指针为什么也可以这样学
//(我用的是visual stdio 编译器,文件名是cpp.)


```

  • 写回答

2条回答 默认 最新

  • yun6853992 2022-09-09 14:13
    关注

    这里主要涉及几个知识点:
    1:c语言字符串的概念,你要知道字符串默认以\0终结
    2:指针的相关概念,函数传参传指针,如果对指针进行运算以及取指针中的值
    3:你要知道字符的概念,以及assii码相关,字符底层其实8bit 存储的还是0和1字符,本身是数字,然后根据assii码表转成对应字符,你可以详细了解这块,如果对字符进行运算,其实就是根据assii码表取值进行计算的。

    img

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 9月21日
  • 已采纳回答 9月13日
  • 创建了问题 9月9日

悬赏问题

  • ¥15 孟德尔随机化结果不一致
  • ¥15 深度学习残差模块模型
  • ¥50 怎么判断同步时序逻辑电路和异步时序逻辑电路
  • ¥15 差动电流二次谐波的含量Matlab计算
  • ¥15 Can/caned 总线错误问题,错误显示控制器要发1,结果总线检测到0
  • ¥15 C#如何调用串口数据
  • ¥15 MATLAB与单片机串口通信
  • ¥15 L76k模块的GPS的使用
  • ¥15 请帮我看一看数电项目如何设计
  • ¥23 (标签-bug|关键词-密码错误加密)