社区
C语言
帖子详情
函数能返回结构体类型的变量不?
ziffle
2004-05-01 09:30:59
函数能返回结构体类型的变量不?
...全文
290
10
打赏
收藏
函数能返回结构体类型的变量不?
函数能返回结构体类型的变量不?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
10 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
antijpn
2004-05-02
打赏
举报
回复
可以是可以,但是效率实在是太低了
ghiewa
2004-05-02
打赏
举报
回复
hehe,要注意结构体的生存周期哦!!
效率太低? 是指又拷贝了一个副本?
robbie24
2004-05-02
打赏
举报
回复
可别返回局部结构体变量的地址哦~
bshaozi
2004-05-02
打赏
举报
回复
可以返回啊
不仅是指针,也可以是结构体本身
但是一般是返回指针~
这样便于以后的操作~
wbh0360
2004-05-02
打赏
举报
回复
可以,但效率低,不如返回地址啊。
cngdzhang
2004-05-02
打赏
举报
回复
简单对象可以,
但是当结构中有指针的时候,
它的拷贝是很机械的
比如:
struct st
{
char *s;
}
struct st s1,s2;
那么s1=s2; 时是s1.s=s2.s的,而不是stcpy(s1.s,s2.s),有点危险
liem
2004-05-02
打赏
举报
回复
可以返回
tyrobird
2004-05-02
打赏
举报
回复
typedef struct
{
int a;
char b;
char c;
short d;
}foo_t;
foo_t my_func()
{
foo_t f;
....
return f;
}
上面的代码是正确的,但一般不建议这么写,这样
foo_t* my_func()
{
foot_t* p_f = (foo_t*)malloc(sizeof(foo_tT));
...
return p_f; //去外面释放
}
lw549
2004-05-02
打赏
举报
回复
返回结构体的指针
zhouqingyuan
2004-05-01
打赏
举报
回复
可以。自定义类型的变量一样可以返回的。
C语言程序设计(高清PDF)
目 录 序言 前言 第1章 程序设计与算法 1 1.1 程序设计语言的发展 1 1.2 C语言的特点 2 1.2.1 C语言是中级语言 2 1.2.2 C语言是
结构
化语言 3 1.2.3 C语言是程序员的语言 3 1.3 C语言的程序
结构
4 1.3.1 基本程序
结构
4 1.3.2
函数
库和链接 6 1.3.3 开发一个C程序 7 1.3.4 C语言的关键字 7 1.4 算法 8 1.4.1 流程图与算法的
结构
化描述 9 1.4.2 用N-S图描述算法 12 1.4.3 用PAD图描述算法 13 第2章 数据
类型
、运算符和表达式 14 2.1 C语言的数据
类型
14 2.2 常量与
变量
15 2.2.1 标识符命名 15 2.2.2 常量 16 2.2.3
变量
16 2.3 整型数据 16 2.3.1 整型常量 16 2.3.2 整型
变量
17 2.4 实型数据 18 2.4.1 实型常量 18 2.4.2 实型
变量
18 2.5 字符型数据 19 2.5.1 字符常量 19 2.5.2 字符串常量 19 2.5.3 转义字符 20 2.5.4 符号常量 20 2.5.5 字符
变量
21 2.6 运算符 22 2.6.1 算术运算符 22 2.6.2 自增和自减 22 2.6.3 关系和逻辑运算符 23 2.6.4 位操作符 24 2.6.5 ?操作符 26 2.6.6 逗号操作符 27 2.6.7 关于优先级的小结 27 2.7 表达式 28 2.7.1 表达式中的
类型
转换 28 2.7.2 构成符cast 29 2.7.3 空格与括号 29 2.7.4 C语言中的简写形式 29 第3章 程序控制语句 31 3.1 程序的三种基本
结构
31 3.2 数据的输入与输出 31 3.2.1 scanf()
函数
31 3.2.2 printf()
函数
33 3.2.3 getchar()
函数
与putchar()
函数
36 3.2.4 程序应用举例 37 3.3 条件控制语句 38 3.3.1 if 语句 38 3.3.2 switch 语句 43 3.3.3 程序应用举例 45 3.4 循环控制语句 46 3.4.1 while语句 47 3.4.2 do... while 语句 49 3.4.3 for 语句 50 3.4.4 break与continue语句 53 3.4.5 程序应用举例 54 第4章
函数
57 4.1
函数
说明与
返回
值 57 4.1.1
函数
的
类型
说明 57 4.1.2
返回
语句 58 4.2
函数
的作用域规则 60 4.2.1 局部
变量
60 4.2.2 全局
变量
61 4.2.3 动态存储
变量
62 4.2.4 静态存储
变量
63 4.3
函数
的调用与参数 63 4.3.1 形式参数与实际参数 64 4.3.2 赋值调用与引用调用 64 4.4 递归 64 4.5 实现问题 66 4.5.1 参数和通用
函数
66 4.5.2 效率 66 4.6
函数
库和文件 67 4.6.1 程序文件的大小 67 4.6.2 分类组织文件 67 4.6.3
函数
库 67 4.7 C语言的预处理程序与注释 67 4.7.1 C语言的预处理程序 68 4.7.2 #define 68 4.7.3 #error 69 4.7.4 # include 69 4.7.5 条件编译命令 70 4.7.6 #undef 72 4.7.7 #line 73 4.7.8 #pragma 73 4.7.9 预定义的宏名 73 4.7.10 注释 73 4.8 程序应用举例 74 第5章 数组 78 5.1 一维数组 78 5.1.1 向
函数
传递一维数组 78 5.1.2 字符串使用的一维数组 79 5.2 二维数组 80 5.2.1 二维数组的一般形式 80 5.2.2 字符串数组 84 5.3 多维数组 85 5.4 数组的初始化 85 5.4.1 数组初始化 85 5.4.2 变长数组的初始化 86 5.5 应用程序举例 87 第6章 指针 91 6.1 指针与指针
变量
91 6.2 指针
变量
的定义与引用 92 6.2.1 指针
变量
的定义 92 6.2.2 指针
变量
的引用 93 6.3 指针运算符与指针表达式 94 6.3.1 指针运算符与指针表达式 94 6.3.2 指针
变量
作
函数
的参数 95 6.4 指针与数组 96 6.4.1 指针与一维数组 97 6.4.2 指针与二维数组 99 6.4.3 数组指针作
函数
的参数 102 6.4.4 指针与字符数组 108 6.5 指针的地址分配 111 6.6 指针数组 112 6.7 指向指针的指针 118 6.8 main
函数
的参数 121 第7章
结构
体
与共用
体
125 7.1
结构
体
类型
变量
的定义和引用 125 7.1.1
结构
体
类型
变量
的定义 126 7.1.2
结构
体
类型
变量
的引用 127 7.1.3
结构
体
类型
变量
的初始化 127 7.2
结构
体
数组的定义和引用 129 7.3
结构
体
指针的定义和引用 135 7.3.1 指向
结构
体
类型
变量
的使用 135 7.3.2 指向
结构
体
类型
数组的指针的 使用 136 7.4 链表的建立、插入和删除 138 7.4.1 单链表 139 7.4.2 单链表的插入与删除 141 7.5 共用
体
149 7.5.1 共用
体
的定义 149 7.5.2 共用
体
变量
的引用 150 第8章 输入、输出和文件系统 153 8.1 缓冲文件系统 153 8.1.1 文件的打开与关闭 153 8.1.2 文件的读写 155 8.1.3 随机读写文件 163 8.2 非缓冲文件系统 166 8.3 文件系统应用举例 167 第9章 实用编程技巧 170 9.1 图形应用技巧 170 9.1.1 显示适配器
类型
的自动测试 170 9.1.2 屏幕图像的存取技巧 179 9.1.3 屏幕显示格式的控制方法 181 9.1.4 使图形软件脱离BGI的方法 182 9.1.5 拷贝屏幕图形的方法 183 9.1.6 随意改变VGA显示器显示颜色的 技巧 185 9.1.7 用随机
函数
实现动画的技巧 187 9.1.8 用putimage
函数
实现动画的技巧 189 9.2 菜单设计技术 191 9.2.1 下拉式菜单的设计 191 9.2.2 选择式菜单的设计 194 9.2.3 实现阴影窗口的技巧 195 9.3 音响技巧 197 9.3.1 音乐程序设计 197 9.3.2 自动识谱音乐程序 200 9.3.3 实现后台演奏音乐的技巧 203 第10章 C++入门 205 10.1 面向对象的概念 205 10.1.1 面向对象的程序
结构
205 10.1.2 C++的类 206 10.2 C++的输入与输出 207 10.3 类与对象 208 10.3.1 类的定义与对象的引用 209 10.3.2 构造
函数
与析构
函数
211 10.3.3
函数
重载 215 10.3.4 友元 216 10.4 对象指针 219 10.5 派生类与继承类 225 10.5.1 单继承的派生类 225 10.5.2 多继承的派生类 233 附录A 常用字符与ASCII代码对照表 238 附录B 习题 239
程序设计方法(How_To_Design_Programs)-MIT.pdf
《程序设计方法》以Scheme语言为基础介绍计算和程序设计的一般理论和实践。《程序设计方法》由8个部分和7个独立的章节(第8、13、18、24、29、33、38章)组成。8个部分主要讨论程序设计,独立章节则介绍一些与程序设计和计算相关的话题。《程序设计方法》第1至第3部分介绍了基于数据驱动的程序设计基础。第4部分介绍了程序设计中的抽象问题。第5部分和第6部分是与递归及累积相关的内容。《程序设计方法》的最后两部分说明了设计程序的意义,阐述了如何应用前6个部分所描述的程序设计诀窍,以及使用赋值语句必须特别小心的一些问题。 《程序设计方法》可作为高等院校计算机科学与技术专业“程序设计导论”和“计算导论”的教材和教学参考书,也可作为
函数
式语言和Scheme语言的入门教材。 目录 · · · · · · 第一部分 简单数据的处理 第1章 学生、教师和计算机 3 第2章 数、表达式和简单程序 5 2.1 数和算术运算 5 2.2
变量
和程序 6 2.3 字处理问题 9 2.4 错误 10 2.5 设计程序 12 第3章 程序就是
函数
加上
变量
定义 15 3.1
函数
复合 15 3.2
变量
定义 17 3.3
函数
复合练习 18 第4章 条件表达式和
函数
20 4.1 布尔
类型
和关系 20 4.2
函数
和条件测试 22 4.3 条件和条件
函数
25 4.4 条件
函数
的设计 27 第5章 符号信息 31 第6章 复合数据之一:
结构
体
34 6.1
结构
体
34 6.2 补充练习:绘制简单图形 36 6.3
结构
体
定义 38 6.4 数据定义 41 6.5 设计处理复合数据的
函数
43 6.6 补充练习:圆和长方形的移动 46 6.7 补充练习:刽子手游戏 49 第7章 数据的多样性 52 7.1 数据混合与区分 52 7.2 设计处理混合数据的
函数
55 7.3 再论
函数
复合 58 7.4 补充练习:图形的移动 60 7.5 输入错误 61 第8章 语法和语义 63 8.1 Scheme的词汇 63 8.2 Scheme的文法 64 8.3 Scheme的含义 65 8.4 错误 68 8.5 布尔值表达式 70 8.6
变量
定义 71 8.7
结构
体
的定义 72 第二部分 任意数目数据的处理 第9章 复合数据
类型
之二:表 77 9.1 表 77 9.2 任意长的表的数据定义 80 9.3 处理任意长的表 82 9.4 设计自引用数据定义的
函数
84 9.5 更多关于简单表的例子 86 第10章 表的进一步处理 90 10.1
返回
表的
函数
90 10.2 包含
结构
体
的表 93 10.3 补充练习:移动图片 98 第11章 自然数 100 11.1 定义自然数 100 11.2 处理任意大的自然数 101 11.3 补充练习:创建表,测试
函数
103 11.4 自然数的另一种数据定义 104 11.5 更多与自然数有关的性质 108 第12章 三论
函数
复合 110 12.1 设计复杂的程序 110 12.2 递归的辅助
函数
111 12.3 问题泛化与
函数
泛化 114 12.4 补充练习:字母的重新排列 117 第13章 用list构造表 119 第三部分 再论任意大数据的处理 第14章 再论自引用数据定义 125 14.1
结构
体
中的
结构
体
125 14.2 补充练习:二叉搜索树 131 14.3 表中的表 135 14.4 补充练习:Scheme求值 137 第15章 相互引用的数据定义 139 15.1 由
结构
体
组成的表与
结构
体
中的表 139 15.2 为相互引用的定义设计
函数
144 15.3 补充练习:网页再谈 145 第16章 反复精化设计 147 16.1 数据分析 147 16.2 定义数据
类型
,再改进它们 148 16.3 改进
函数
和程序 150 第17章 处理两种复杂数据片段 152 17.1 同时处理两个表:第一种情况 152 17.2 同时处理两个表:第二种情况 154 17.3 同时处理两个表:第三种情况 156 17.4
函数
的简化 159 17.5 设计读入两个复杂输入的
函数
160 17.6 处理两个复杂输入的练习 161 17.7 补充练习:Scheme求值之二 164 17.8 相等与测试 165 第18章 局部定义和辖域 172 18.1 用local组织程序 172 18.2 辖域和块
结构
183 第四部分 抽象设计 第19章 定义的相似性 189 19.1
函数
的类似之处 189 19.2 数据定义的类似之处 195 第20章
函数
也是值 199 20.1 语法和语义 199 20.2 抽象
函数
和多态
函数
的合约 200 第21章 抽象设计的例子 204 21.1 从实例中抽象 204 21.2 抽
MySQL
函数
、用户自定义
函数
Re: MySQL
函数
、用户自定义
函数
==============================# MySQL
函数
的意义 MySQL 自身提供大量功能强大、方便易用的
函数
。使用这些
函数
,可以极大地提高用户对数据库的管理效率。 #
函数
的分类 # 用户自定义
函数
我们学习了 MySQL 的系统内置的
函数
之后,如果系统内置的
函数
不能满足我们的应用,可以创建存储
函数
。-------------------------------
C语言中
函数
如何
返回
结构
体
?
//#include "stdafx.h"//If the vc++6.0, with this line. #include "stdio.h" #include "string.h" struct ABC{ char name[20]; int n; }; struct ABC myfun(void){ struct ABC x={"Lining",99};//声明一个
结构
体
局部
变量
x并初始化 return x;//
返回
局部
变量
结构
体
x } int main(void){
【转载】
函数
返回
结构
体
的内幕,大神讲解的非常精辟了
在刚接触C语言编程时,无论是前辈还是教科书,都反复告诫我们两件事: ①
函数
的参数是值传递(意味着在
函数
中对参数本身的修改无法“传回”); ②不要
返回
函数
体
内局部
变量
的地址,因为
函数
结束时栈会回收,局部
变量
也随之销毁(如果局部
变量
为类对象,其析构
函数
会被自动调用),但可以
返回
局部
变量
本身。 那么如果一个
函数
的
返回
值为
结构
体
类型
,其
返回
值是如何“
返回
”的呢? 是通过“值传递”吗?我们知道
函数
参数的值传递,就是将参数入栈(因此参数有自己的一份拷贝,
函数
中对参数的操作其实操作的就是这份拷贝)。而
函数
结.
C语言
69,382
社区成员
243,073
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章