2023-06-26 19:16:03 | 我爱编程网
最近看到一些同学问题,有提到说:如何在一个函数中返回数组呢?能否直接在自定义 函数中,写成char *类型返回值,直接返回呢?,代码如下:
直接返回str数组名(注意不需要加&,还有好多同学犯这个错)但事实上,运行结果并非正常,我们尝试在调用函数中输出,可以看到结果并非是原来内容(当然你的电脑输出可能还不是这个样子)
如下:
原因大家可以从str的属性入手,str本身是一个自定义函数中的局部变量,是一个数组有一百个字节,它的生命周期当然也随着它所在的函数一起,正所谓“一招天子一朝臣”,随着fun函数调用的结束,其中的各种局部变量也将被系统收回,理所当然的str数组这一百个字节也将被收回,所以”Hello www.dotcpp.com”这串字符串也就灰飞烟灭了!自然你在main函数里再输出肯定已经不是原来的内容了!
怎么样,可以理解吧!不过,还没有结束,依然有同学继续问,可为什么我换成下面这种写法就可以了呢?
如下图:
答曰:这种写法情况下,str虽也属于是局部变量,但不是一个数组,而是一个指针,只有四个字节,存的是在常量区的字符串” Hello www.dotcpp.com”,但请注意,这个字符串在常量区,而不属于fun函数里的部分,全程序都可读,所以return之后依旧存在,返回的是str里的值,也就是字符串“Hello www.dotcpp.com”的首地址,是一个数,其实相当于把这个字符串的地址在str手里通过返回值转交到p里。
也可以打个比方:之前只有fun函数知道这个字符串,但现在已经马上不行了,临终前,交代:“我快不行了,赶紧把‘Hello www.dotcpp.com’的藏宝地址(字符串首地址)转交到main函数里!”
然后就return 快马加鞭的返回到main函数手里了!随后消失…
而后,main函数获得之后,你们也就知道了…
这样讲,大家能理解吗?
后期C语言逆向分析部分,也会有涉及到此处的原理,大家可以再深入学习理解。
同时,下篇我们将为大家讲解如何实现自定义函数的数组传递问题!
编程语言python入门要学习哪些?学习python,主要学习ython基础语法、数据类型、字符编码、文件操作、函数、装饰器、迭代器、内置方法、常用模块等;之后再进阶学习,如框架等。阶段一:Python开发基础Python全栈开发与人工智能之Python开发基础知识学习内容包括:Python基础语法、数据类型、字符编码、文件操作、函数、装饰器、迭代器、内置方法、常用模块等。
刚入大学,请问计算机二级,Python,c语言,c++,编程分别是什么?计算机二级是一门计算机等级的考试,其中报考的科目可以有好多种,主要分为两种——office和语言,而语言又分成三个大科目——高级语言程序设计,web语言网页开发,数据库程序设计,派森跟C就是其中高级语言程序设计的科目之一。考生只需要在公布的科目里随便报考一个就可。(自行看下图)C和C++的关系,可以看成win7和
如何用c语言在windows平台上开发phpextension何使用C语言发PHP扩展函数功能:php面整数符号数其内部实现其实longunsignedlong于32位机器说php能表示整数2^31-1般应用碰于2^31-1于2^32数能用字符串表示于mixedint_ext(stringin)说字符串in表示整数于2^31-1返整数于返字符串发扩展步骤:(首先需要载php源码载
php中function函数的用法在PHP中,function是用于定义和声明函数的关键字。函数是一段可重复使用的代码块,它封装了一系列操作或逻辑,并可以通过函数名进行调用和执行。通过使用函数,可以将代码模块化,提高代码的可读性、可维护性和重用性。在PHP中,function关键字用于定义和声明函数。函数是一段可重复使用的代码块,它封装了一系列操作或逻辑,并可以通过函数名进行调用和执行,
编程入门先学什么?编程入门先学C语言或者python。为了解决使用机器语言编写应用程序所带来的一系列问题,人们首先想到使用助记符号来代替不容易记忆的机器指令。这种助记符号来表示计算机指令的语言称为符号语言,也称汇编语言。在汇编语言中,每一条用符号来表示的汇编指令与计算机机器指令一一对应;记忆难度大大减少了,不仅易于检查和修改程序错误,而且指令、数据的存放位置可以由计算机自动
PHP与C语言的语法有什么不同PHP与C语言的语法有什么不同?PHP的基本语法和C是很相似的,可以说大部分编程语言的基本语法都是如出一辙的:顺序、选择(if)、循环(while)。不同之处有变量定义,还有实现的具体细节。但是,php主要是部署网站用的,所以大部分时候是要嵌在HTML语言里面的,并且与JS混合在一起,所以表面看上去很乱,远远没有C语言的单纯。以上是对格式方面的理
那么多的C语言函数,怎么学啊,给个建议。学习任何知识,循序渐进总是最好的方式。不幸的是,很多人明知这个道理,却总是想走所谓的捷径。如果你是一个刚刚开始学习编程的中学生,或者你是一个刚刚进入计算机学院的本科生,又或者你是一个决心在计算机领域有所建树的初学者,你一定迫切地想知道,学习计算机技术,究竟应该从哪里下手。我的建议是:数学、英语、C语言。数学和英语的重要性已经不需要我来强调,
C语言timer函数和time函数Timer()函数语法:Timer(interval{,windowname})参数:指定两次触发Timer事件之间的时间间隔,有效值在0到65之间。如果该参数的值指定为0,那么关闭定时器,不再触发指定窗口的Timer事件。windowname:窗口名,指定时间间隔到时要触发哪个窗口的Timer事件。省略该参数时,触发当前窗口的Timer事件返回值
2025-02-01 20:24:39
2024-01-05 14:11:24
2025-02-12 03:21:37
2025-02-10 15:19:48
2025-01-28 17:58:32
2024-11-22 05:08:01