关于#排序#的问题,如何解决?

img

为啥排序之后会多出5个零?是不是我的sizeof不能这么用?刚学C没多久,求指点

img


数组长度不正确

你all数组的长度是15,你只输入了10个数,还有5个数是0

  • 这个问题的回答你可以参考下: https://ask.csdn.net/questions/7782686
  • 你也可以参考下这篇文章:编写程序,输出各种基本类型及其派生类型所占用的字节长度,请使用sizeof运算符。
  • 除此之外, 这篇博客: 下次再考sizeof我一定会!中的 sizeof在指针的应用 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  • 指针在C里面是一个非常重要的概念,它记录了另一个对象的地址。在32位计算机中,一个指针变量的返回值通常是4(注意结果是以字节为单位),在64位系统中指针变量的sizeof通常为8。

    #include <stdio.h>
    
    int main()
    {
        char *a = "codeMan";
        int *b;
        char **c = &a;
        void(*d)();//函数指针
        printf("%d\n",sizeof(a));//32位结果为4 64位结果为8
        printf("%d\n",sizeof(b));//32位结果为4 64位结果为8
    	printf("%d\n",sizeof(c));//32位结果为4 64位结果为8
        printf("%d\n",sizeof(d));//32位结果为4 64位结果为8
    }
    

    指针变量的sizeof值与指针所指的对象没有任何关系,正是由于所有的指针变量所占内存大小相等,所以MFC消息处理函数使用两个参数WPARAM、LPARAM就能传递各种复杂的消息结构(使用指向结构体的指针)。