关于#c语言#的问题:请问下返回值为什么是2

img


请问下返回值为什么是2?为什么数组随机给的内容老是有个-73?

因为你没有对char数组进行初始化,所以用strlen判断长度具有随机性,要看分配的内存已有的值是什么。从结果2来看,分配内存的第三个字节存储的是0,所以strlen结果为2
建议改为char a[10] = {0};进行初始化,这样strlen得到的结果就肯定是0了

  • 帮你找了个相似的问题, 你可以看下: https://ask.csdn.net/questions/715668
  • 我还给你找了一篇非常好的博客,你可以看看是否有帮助,链接:C语言及算法设计课程实验二:数据类型、运算符和简单的输入输出
  • 除此之外, 这篇博客: C语言学习笔记04:C语言基础_数据类型_流程控制_数组_字符串_函数_指针_ 内存管理中的 2. 数据类型 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
    1. 变量类型

      1. 创建变量的时候,决定给变量分配多少内存。
      2. 编译器通过类型来确定运算规则。
    2. 整型变量:

      1. short 2个字节
      2. int 4 个字节
      3. long 4个字节(gcc 8字节)
      4. long long 8个字节
    3. 字符类型:

      1. 字符类型实际在内存中以 ASCII 码值(数字 0-255)
      2. 也可以把字符类型当做1字节长度的整型。
      3. -128-127, -0在程序中用-128来代替。
    4. 浮点型:

      1. float , 4 个字节, 6-7位,6位一定准,7位不一定准。
      2. double, 8个字节, 精确到 15-16位, 15一定准,16不一定准。
    5. 数值溢出:

      1. 有符号: C语言没有规定,未定义。VC编译器和有符号一样,char c = 127; c+=1; -128
      2. 无符号: C语言有规定。当这个数超过最大值,会回到原点。unsigned char c = 255; c += 1; 0
    6. 类型转换:

      1. 隐式类型转换。
      2. 显式类型转换(强制类型转转)。
      3. 尽量用强制类型转换,代码可读性好。
    7. 数据存储都是使用补码存储。

      1. 反码:符号位不变,其他位取反。
      2. 补码: 反码 + 1。
      3. 负数的补码:反码+1
      4. 正数的补码就是自身。
    8. 运算符:自增、自减运算

      1. 前置++:先加完再用。

      2. 后置++:先用再加。

        int a = 10;
        int c = ++a;  // 11
        /*
        	a = a + 1;
        	int c = a;
        */
        
        int c = a++;  // 10
        /*
        	int c = a;
        	a = a + 1;
        */
        
        
  • 您还可以看一下 张勇老师的初级到CS开发高手通用权限管理系统全程实录课程中的 如何设置带复选框的树形控件并可以联动小节, 巩固相关知识点
  • 以下回答由chatgpt基于相关博客总结生成:

    回答: 1. 返回值为2的情况一般出现在某些需要判断状态的函数或语句中,例如fread函数在读取完所有数据之后,如果有错误发生,则会返回2。具体可以查看相关函数或语句的文档,看其返回值对应的含义是什么。

    1. 数组中出现-73可能是由于使用随机数函数时,没有对数组进行初始化。随机数函数在生成随机数时,是根据内存中的值来生成的,如果数组中本身就有垃圾值或未初始化的值,则随机数函数生成的随机数也可能会重复出现这些值。可以使用memset函数对数组进行初始化,将数组中所有的值都初始化为0或其他指定的值。

    2. 段落0中给出了结构体成员的访问方式,可以使用"."来访问。比如对于结构体Stu中的name成员,可以使用p.name来访问。段落0中也给出了函数的参数传递方法,可以使用传值调用将结构体作为函数参数传递进去。

    3. 段落1中给出了头插法倒序存储链表并输出的函数代码,具体来说就是先新建一个空的头结点,然后遍历原链表,将每个节点都插入到新链表的头部,最后遍历新链表输出即可。

    4. 段落2中给出了一个统计输入字符中单词数量和单词平均长度的函数代码,具体来说就是遍历字符串,用计数器记录单词数量,用长度累加器累加单词长度,最后除以单词数量求得平均长度,并通过指针传参将单词数量返回。

    5. 段落3中介绍了Markdown编辑器的一些新功能,包括全新的界面设计、代码高亮样式、图片拖拽、数学公式语法、甘特图支持、多屏幕编辑、焦点写作模式等等。这些功能可以帮助作者更方便、更快捷、更高效地写博客。