iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > 其他教程 >剖析C语言关键字之void,const,return
  • 395
分享到

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

2024-04-02 19:04:59 395人浏览 八月长安
摘要

目录returnvoid一.可做为函数的通用接口二.void不能修饰变量三.void修饰函数返回值const总结return 首先我们弄清楚C语言内存分配的方式 然后我们看一段代码

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.让看源码的童鞋知道这里不能被修改

在这里插入图片描述

总结

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

--结束END--

本文标题: 剖析C语言关键字之void,const,return

本文链接: https://www.lsjlt.com/news/161695.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 剖析C语言关键字之void,const,return
    目录returnvoid一.可做为函数的通用接口二.void不能修饰变量三.void修饰函数返回值const总结return 首先我们弄清楚c语言内存分配的方式 然后我们看一段代码...
    99+
    2024-04-02
  • 如何分析C语言关键字中的void、const和return
    这篇文章将为大家详细讲解有关如何分析C语言关键字中的void、const和return,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。return首先我们弄清楚c语言内存分配的方式然后我们看一...
    99+
    2023-06-22
  • c语言中const关键字的作用
    const关键字在c语言中用于修饰变量或函数,使其值或行为在程序执行期间保持不变。它可以修饰变量(使其成为常量),防止意外修改数据,提高程序安全性。此外,const还可以修饰函数,确保其...
    99+
    2024-05-10
    c语言 敏感数据 代码可读性
  • C语言中的Const关键字怎么用
    这篇“C语言中的Const关键字怎么用”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“C语言中的Const关键字怎么用”文章吧...
    99+
    2023-06-29
  • C语言关键字const与volatile怎么用
    今天小编给大家分享一下C语言关键字const与volatile怎么用的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。一、con...
    99+
    2023-06-30
  • C++ const关键字分析详解
    目录C语言中修饰变量C语言中修饰指针变量C语言中修饰函数的参数C++中修饰变量C++中修饰函数的参数C++中修饰函数的返回值C++中修饰类的成员函数C++中修饰类的成员变量总结C语言...
    99+
    2024-04-02
  • 深入聊聊C语言中的Const关键字
    目录前言01const简述02常量的应用常量作为函数的参数C++中应用加const03#define和const总结前言 const是一个C语言的关键字,它限定一个变量不允许被改变。...
    99+
    2024-04-02
  • C语言详细分析讲解关键字goto与void的作用
    目录一、关于goto二、void 的意义三、小结一、关于goto 高手潜规则:禁用 goto项目经验:程序质量与 goto 的出现次数成反比最后的判决:将 goto 打入冷宫 下面看...
    99+
    2024-04-02
  • C语言Static 关键字解析
    目录01简述02static关键字作用01简述 static关键字在嵌入式C语言当中很简单,它有三个作用: 作用一:在函数体,一个被声明为静态的变量在这一函数被调用过程中维持其值不变...
    99+
    2024-04-02
  • C语言详细分析讲解关键字const与volatile的用法
    目录一、const 只读变量二、const 全局变量的分歧三、const 的本质四、const 修饰函数参数和返回值五、volatile 解析六、小结一、const 只读变量 con...
    99+
    2024-04-02
  • C语言深度解剖篇之关键字以及补充内容
    目录关键字分类补充内容第一个C程序定义与声明变量变量的分类变量的作用域变量的生命周期作用域 vs 生命周期最宽宏大量的关键字 - auto最快的关键字 - register存储金字塔...
    99+
    2024-04-02
  • C语言关键字之autoregister详解
    目录一:auto作用域生命周期auto二:register总结:一:auto 在学习关键字auto之前我们需要先了解两个概念:作用域和生命周期。 作用域 作用域(scope)是程序设...
    99+
    2024-04-02
  • C 语言基础之C语言的常见关键字
    目录​1、auto 2、register 3、signed和unsigned 4、typedef 5、extern 6、拓展首先我们简单的和这些关键字见见面(被高亮的关键...
    99+
    2024-04-02
  • C语言关键字总结解析
    C语言关键字总结 1.关键字变更历史 1999年12月16日,ISO推出了C99标准,该标准新增了5个C语言关键字: inline restrict _Bool _Complex _...
    99+
    2024-04-02
  • c语言深度解剖(数据类型关键字)
    1. 前面说点话上一个章节嵌入式Linux:c语言深度解剖(入门篇)zhuanlan.zhihu.com写完后,很多看完的人都想把我按在地上摩擦,咬牙切齿不足解恨,但是也有很多人表示支持,在此,鄙人表示感谢。这个章节说下C语言的关...
    99+
    2023-06-03
  • C语言深入讲解之从函数栈帧角度理解return关键字
    目录初识函数栈帧return个人总结环节初识函数栈帧 如上图可见,函数在被调用的时候会现在栈上开辟一个空间,我们称之为栈帧,之后函数内部的变量在这块区域进行空间开辟。 但是函数在调...
    99+
    2024-04-02
  • C语言关键字(三)
    这篇文件继续讲解C语言关键字想问大家一个问题,什么是声明什么是定义?举个例子:A)int i;B)extern int i;(关于extern,后面解释)哪个是定义?哪个是声明?或者都是定义或者都是声明?什么是定义:所谓的定义就是(编译器)...
    99+
    2023-06-03
  • 深入剖析Go语言的关键特性
    go 语言是一款开源编程语言,具备以下关键特性:并发性:支持轻量级线程 (goroutine) 和通信通道,实现高效并发编程。异常处理:使用内置错误系统处理异常,支持自定义错误类型。接口...
    99+
    2024-04-08
    go语言 关键特性 golang
  • 深入剖析Go语言与C语言的关联性
    go 语言与 c 语言在语法、数据类型和内存管理方面具有相似性。尽管两者均采用 c 风格语法和类似数据类型,但 go 语言引入了切片和通道等新类型。此外,go 语言采用垃圾回收机制,而 ...
    99+
    2024-04-08
    go语言 c语言 垃圾回收器
  • C语言 auto和register关键字
    目录一、关键字分类二、补充内容1、变量的分类2、变量的作用域与生命周期三、最宽宏大量的关键字 -- auto四、最快的关键字 -- register1、存储分级2、寄存器3、regi...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作