信息发布→ 登录 注册 退出

剖析C语言关键字之void,const,return

发布时间:2026-01-11

点击量:
目录
  • return
  • void
    • 一.可做为函数的通用接口
    • 二.void不能修饰变量
    • 三.void修饰函数返回值
  • const
    • 总结

      return

      首先我们弄清楚c语言内存分配的方式

      然后我们看一段代码:

      #pragma warning(disable:4996)
      #include<stdio.h>
      char* string()
      {
      	char arr[] = "hello world";
      	return arr;
      }
      int main()
      {
      	char* s = string();
      	printf("%s", s);
      	return 0;
      }
      

      当运行到printf函数的时候,s指向的内容仍是”hello world“,但为什么最后打印出来就是乱码了?

      我们先看栈区中内存的分配

      当string函数执行完时,它创造的栈帧就被销毁了,可这里的销毁并不是将其的数据清零,而是将其设置为可覆盖的数据

      但为什么最后又乱码了呢?

      那是因为printf也是一个函数,也要创造空间,所以将string所创造的栈帧给覆盖了

      所以我们就完美地解释了为什么会乱码的原因

      void

      一.可做为函数的通用接口

      例:

      运用:char* s = (char*)malloc(sizeof(char));

      原因:

      void类型的指针可被任意类型的指针接受,也可以接受任意类型的指针

      二.void不能修饰变量

      原因:编译器不知道给变量分配多少空间

      三.void修饰函数返回值

      占位符,告知用户不用返回值

      假如不加,默认是int类型的返回值

      const

      const修饰的变量不能直接被修改,但能通过指针

      但是const仍有它的意义
      1.让编译器提前告诉我们不该修改的变量被修改了
      2.让看源码的童鞋知道这里不能被修改

      总结

      本篇文章就到这里了,希望能够给你带来帮助,也希望您能够多多关注的更多内容!

      在线客服
      服务热线

      服务热线

      4008888355

      微信咨询
      二维码
      返回顶部
      ×二维码

      截屏,微信识别二维码

      打开微信

      微信号已复制,请打开微信添加咨询详情!