C语言成员函数指针调用用函数问题,急求解释(本题是《c和指针》上的题目)

石家庄大的整形医院是哪个?这道题谁知道_百度知道
石家庄大的整形医院是哪个?这道题谁知道
我有更好的答案
好哦,要把自己变的清纯可人,也是对家人负责,还是父母给的,要对自己负责,可以看别人怎么说,去百度贴吧的石家庄整形医院吧看。多搞些调查真的没错,不要怕麻烦,毕竟身体是自己的
想知道如何
为您推荐:
其他类似问题
您可能关注的内容
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。当前位置:
《C和指针(第二版)》扫描版[PDF]
本书提供与C语言编程相关的全面资源和深入讨论。本书通过对指针的基础知识和高级特性的探讨,帮助程序员把指针的强大功能融入到自己的程序中去。全 书共18章,覆盖了数据、语句、操作符和表达式、指针、函数、数组、字符串、结构和联合等几乎所有重要的C编程话题。书中给出了很多编程技巧和提示,每章 后面有针对性很强的练习,附录部分则给出了部分练习的解答。本书适合C语言初学者和初级C程序员阅读,也可作为计算机专业学生学习C语言的参考。
第1章 快速上手 1
1.1 简介 1
1.1.1 空白和注释 4
1.1.2 预处理指令 4
1.1.3 main函数 5
1.1.4 read_column_numbers函数 8
1.1.5 rearrange函数 12
1.2 补充说明 14
1.3 编译 14
1.4 总结 15
1.5 警告的总结 15
1.6 编程提示的总结 15
1.7 问题 16
1.8 编程练习 16
第2章 基本概念 19
2.1 环境 19
2.1.1 翻译 19
2.1.2 执行 21
2.2 词法规则 21
2.2.1 字符 22
2.2.2 注释 23
2.2.3 自由形式的源代码 23
2.2.4 标识符 24
2.2.5 程序的形式 24
2.3 程序风格 25
2.4 总结 26
2.5 警告的总结 26
2.6 编程提示的总结 26
2.7 问题 27
2.8 编程练习 28
第3章 数据 29
3.1 基本数据类型 29
3.1.1 整型家族 29
3.1.2 浮点类型 32
3.1.3 指针 33
3.2 基本声明 35
3.2.1 初始化 35
3.2.2 声明简单数组 36
3.2.3 声明指针 36
3.2.4 隐式声明 37
3.3 typedef 38
3.4 常量 38
3.5 作用域 39
3.5.1 代码块作用域 40
3.5.2 文件作用域 41
3.5.3 原型作用域 41
3.5.4 函数作用域 41
3.6 链接属性 41
3.7 存储类型 43
3.8 static关键字 44
3.9 作用域、存储类型示例 45
3.10 总结 46
3.11 警告的总结 47
3.12 编程提示的总结 47
3.13 问题 48
第4章 语句 51
4.1 空语句 51
4.2 表达式语句 51
4.3 代码块 52
4.4 if语句 52
4.5 while语句 53
4.5.1 break和continue语句 54
4.5.2 while语句的执行过程 54
4.6 for语句 55
4.7 do语句 56
4.8 switch语句 57
4.8.1 switch中的break语句 58
4.8.2 default子句 59
4.8.3 switch语句的执行过程 59
4.9 goto语句 60
4.10 总结 61
4.11 警告的总结 62
4.12 编程提示的总结 62
4.13 问题 62
4.14 编程练习 63
第5章 操作符和表达式 67
5.1 操作符 67
5.1.1 算术操作符 67
5.1.2 移位操作符 67
5.1.3 位操作符 69
5.1.4 赋值 70
5.1.5 单目操作符 72
5.1.6 关系操作符 73
5.1.7 逻辑操作符 74
5.1.8 条件操作符 75
5.1.9 逗号操作符 76
5.1.10 下标引用、函数调用和结构成员 77
5.2 布尔值 78
5.3 左值和右值 79
5.4 表达式求值 80
5.4.1 隐式类型转换 80
5.4.2 算术转换 80
5.4.3 操作符的属性 81
5.4.4 优先级和求值的顺序 82
5.5 总结 85
5.6 警告的总结 86
5.7 编程提示的总结 86
5.8 问题 86
5.9 编程练习 88
第6章 指针 91
6.1 内存和地址 91
6.2 值和类型 92
6.3 指针变量的内容 93
6.4 间接访问操作符 94
6.5 未初始化和非法的指针 95
6.6 NULL指针 96
6.7 指针、间接访问和左值 97
6.8 指针、间接访问和变量 97
6.9 指针常量 98
6.10 指针的指针 98
6.11 指针表达式 99
6.12 实例 104
6.13 指针运算 107
6.13.1 算术运算 108
6.13.2 关系运算 110
6.14 总结 111
6.15 警告的总结 112
6.16 编程提示的总结 112
6.17 问题 112
6.18 编程练习 115
第7章 函数 117
7.1 函数定义 117
7.2 函数声明 119
7.2.1 原型 119
7.2.2 函数的缺省认定 121
7.3 函数的参数 122
7.4 ADT和黑盒 124
7.5 递归 127
7.5.1 追踪递归函数 128
7.5.2 递归与迭代 131
7.6 可变参数列表 134
7.6.1 stdarg宏 135
7.6.2 可变参数的限制 135
7.7 总结 136
7.8 警告的总结 137
7.9 编程提示的总结 137
7.10 问题 138
7.11 编程练习 138
第8章 数组 141
8.1 一维数组 141
8.1.1 数组名 141
8.1.2 下标引用 142
8.1.3 指针与下标 144
8.1.4 指针的效率 145
8.1.5 数组和指针 150
8.1.6 作为函数参数的数组名 150
8.1.7 声明数组参数 152
8.1.8 初始化 152
8.1.9 不完整的初始化 153
8.1.10 自动计算数组长度 153
8.1.11 字符数组的初始化 153
8.2 多维数组 154
8.2.1 存储顺序 154
8.2.2 数组名 155
8.2.3 下标 156
8.2.4 指向数组的指针 158
8.2.5 作为函数参数的多维数组 159
8.2.6 初始化 160
8.2.7 数组长度自动计算 162
8.3 指针数组 162
8.4 总结 165
8.5 警告的总结 166
8.6 编程提示的总结 166
8.7 问题 166
8.8 编程练习 170
第9章 字符串、字符和字节 175
9.1 字符串基础 175
9.2 字符串长度 175
9.3 不受限制的字符串函数 177
9.3.1 复制字符串 177
9.3.2 连接字符串 178
9.3.3 函数的返回值 178
9.3.4 字符串比较 178
9.4 长度受限的字符串函数 179
9.5 字符串查找基础 180
9.5.1 查找一个字符 180
9.5.2 查找任何几个字符 181
9.5.3 查找一个子串 181
9.6 高级字符串查找 182
9.6.1 查找一个字符串前缀 182
9.6.2 查找标记 182
9.7 错误信息 184
9.8 字符操作 184
9.8.1 字符分类 184
9.8.2 字符转换 184
9.9 内存操作 185
9.10 总结 186
9.11 警告的总结 187
9.12 编程提示的总结 187
9.13 问题 188
9.14 编程练习 188
第10章 结构和联合 195
10.1 结构基础知识 195
10.1.1 结构声明 195
10.1.2 结构成员 197
10.1.3 结构成员的直接访问 197
10.1.4 结构成员的间接访问 198
10.1.5 结构的自引用 198
10.1.6 不完整的声明 199
10.1.7 结构的初始化 199
10.2 结构、指针和成员 200
10.2.1 访问指针 201
10.2.2 访问结构 201
10.2.3 访问结构成员 202
10.2.4 访问嵌套的结构 203
10.2.5 访问指针成员 204
10.3 结构的存储分配 205
10.4 作为函数参数的结构 206
10.5 位段 209
10.6 联合 211
10.6.1 变体记录 212
10.6.2 联合的初始化 213
10.7 总结 214
10.8 警告的总结 214
10.9 编程提示的总结 214
10.10 问题 215
10.11 编程练习 217
第11章 动态内存分配 221
11.1 为什么使用动态内存分配 221
11.2 malloc和free 221
11.3 calloc和realloc 222
11.4 使用动态分配的内存 223
11.5 常见的动态内存错误 223
11.6 内存分配实例 226
11.7 总结 231
11.8 警告的总结 232
11.9 编程提示的总结 232
11.10 问题 232
11.11 编程练习 233
第12章 使用结构和指针 235
12.1 链表 235
12.2 单链表 235
12.2.1 在单链表中插入 236
12.2.2 其他链表操作 245
12.3 双链表 245
12.3.1 在双链表中插入 246
12.3.2 其他链表操作 253
12.4 总结 253
12.5 警告的总结 254
12.6 编程提示的总结 254
12.7 问题 254
12.8 编程练习 255
第13章 高级指针话题 257
13.1 进一步探讨指向指针的指针 257
13.2 高级声明 258
13.3 函数指针 260
13.3.1 回调函数 261
13.3.2 转移表 263
13.4 命令行参数 265
13.4.1 传递命令行参数 265
13.4.2 处理命令行参数 266
13.5 字符串常量 269
13.6 总结 271
13.7 警告的总结 272
13.8 编程提示的总结 272
13.9 问题 272
13.10 编程练习 275
第14章 预处理器 279
14.1 预定义符号 279
14.2 #define 279
14.2.1 宏 281
14.2.2 #define替换 282
14.2.3 宏与函数 283
14.2.4 带副作用的宏参数 284
14.2.5 命名约定 285
14.2.6 #undef 285
14.2.7 命令行定义 285
14.3 条件编译 286
14.3.1 是否被定义 287
14.3.2 嵌套指令 288
14.4 文件包含 288
14.4.1 函数库文件包含 289
14.4.2 本地文件包含 289
14.4.3 嵌套文件包含 290
14.5 其他指令 291
14.6 总结 292
14.7 警告的总结 293
14.8 编程提示的总结 293
14.9 问题 293
14.10 编程练习 295
第15章 输入/输出函数 297
15.1 错误报告 297
15.2 终止执行 298
15.3 标准I/O函数库 298
15.4 ANSI I/O概念 299
15.4.1 流 299
15.4.2 文件 300
15.4.3 标准I/O常量 300
15.5 流I/O总览 301
15.6 打开流 302
15.7 关闭流 303
15.8 字符I/O 304
15.8.1 字符I/O宏 305
15.8.2 撤销字符I/O 305
15.9 未格式化的行I/O 306
15.10 格式化的行I/O 308
15.10.1 scanf家族 308
15.10.2 scanf格式代码 308
15.10.3 printf家族 312
15.10.4 printf格式代码 312
15.11 二进制I/O 316
15.12 刷新和定位函数 316
15.13 改变缓冲方式 318
15.14 流错误函数 319
15.15 临时文件 319
15.16 文件操纵函数 319
15.17 总结 320
15.18 警告的总结 321
15.19 编程提示的总结 322
15.20 问题 322
15.21 编程练习 323
第16章 标准函数库 327
16.1 整型函数 327
16.1.1 算术 327
16.1.2 随机数 328
16.1.3 字符串转换 329
16.2 浮点型函数 329
16.2.1 三角函数 330
16.2.2 双曲函数 330
16.2.3 对数和指数函数 330
16.2.4 浮点表示形式 331
16.2.5 幂 331
16.2.6 底数、顶数、绝对值和余数 331
16.2.7 字符串转换 332
16.3 日期和时间函数 332
16.3.1 处理器时间 332
16.3.2 当天时间 332
16.4 非本地跳转 335
16.4.1 实例 336
16.4.2 何时使用非本地跳转 337
16.5 信号 338
16.5.1 信号名 338
16.5.2 处理信号 339
16.5.3 信号处理函数 340
16.6 打印可变参数列表 341
16.7 执行环境 342
16.7.1 终止执行 342
16.7.2 断言 342
16.7.3 环境 343
16.7.4 执行系统命令 343
16.7.5 排序和查找 344
16.8 locale 346
16.8.1 数值和货币格式 346
16.8.2 字符串和locale 348
16.8.3 改变locale的效果 349
16.9 总结 349
16.10 警告的总结 350
16.11 编程提示的总结 351
16.12 问题 351
16.13 编程练习 352
第17章 经典抽象数据类型 355
17.1 内存分配 355
17.2 堆栈 355
17.2.1 堆栈接口 356
17.2.2 实现堆栈 356
17.3 队列 364
17.3.1 队列接口 364
17.3.2 实现队列 365
17.4 树 369
17.4.1 在二叉搜索树中插入 370
17.4.2 从二叉搜索树删除节点 370
17.4.3 在二叉搜索树中查找 371
17.4.4 树的遍历 371
17.4.5 二叉搜索树接口 372
17.4.6 实现二叉搜索树 373
17.5 实现的改进 379
17.5.1 拥有超过一个的堆栈 379
17.5.2 拥有超过一种的类型 380
17.5.3 名字冲突 380
17.5.4 标准函数库的ADT 381
17.6 总结 383
17.7 警告的总结 384
17.8 编程提示的总结 384
17.9 问题 384
17.10 编程练习 385
第18章 运行时环境 387
18.1 判断运行时环境 387
18.1.1 测试程序 387
18.1.2 静态变量和初始化 390
18.1.3 堆栈帧 391
18.1.4 寄存器变量 391
18.1.5 外部标识符的长度 393
18.1.6 判断堆栈帧布局 393
18.1.7 表达式的副作用 398
18.2 C和汇编语言的接口 399
18.3 运行时效率 400
18.4 总结 402
18.5 警告的总结 403
18.6 编程提示的总结 403
18.7 问题 403
18.8 编程练习 403
附录 部分问题答案 405
下载不了?绝地求生:刺激战场用手游手柄玩更加好?_百度知道
绝地求生:刺激战场用手游手柄玩更加好?
我有更好的答案
用手柄玩的确会更好,摇杆的走位会更加的精准,同时按键能够提高捡取道具,打药等操作。除了开车还是要手操外,手柄基本完爆手
为您推荐:
其他类似问题
您可能关注的内容
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。欢迎加入我们,一同切磋技术 &
用户名: &&&
密 码: &
共有 537 人关注过本帖
标题:关于指针在被传到被调用函数的问题(求助)
等 级:新手上路
结帖率:100%
&&已结贴√
&&问题点数:10&&回复次数:5&&&
关于指针在被传到被调用函数的问题(求助)
指针的这个问题我被困扰了很久,希望真正悟透的兄弟给上精确的答复,不要搜索或人去亦云的东西.为了能得到精确的答案,我干脆直接用下面这种方式提问:
书上说C语言是以传值的方式将参数值传递给被调用函数,被调用函数不能直接修改主调函数中变量的值.
下列程序中是主函数先调用第一个函数,然后在第一个函数里面又调用第二个函数.
问题1:在运行 exchange(p1, p2);后,被传到第一个函数的是指针变量p1,p2的(&&& )
A、指针指向的地址&&&&&B、所对应的变量a,b&&&&&& C、值5和6.
问题2:在第一个函数中又调用了第二个函数这时,这时被传到第二个函数中的是指针变量p1,p2的(&&& )
A、指针指向的地址&&&&&& B、所对应的变量a,b。&&& C、值5和6。程序代码:[color=#008000]/*交换a, b 两个数*/
#include &stdio.h&
void main()
&&& void exchange(int *q1, int *q2);
&&& int a ,&&&&&&&&&&&&&&&&&&&&&
&&& int *p1, *p2;
&&& a = <font color=#;
&&& b = <font color=#;
&&& p1 = &a;
&&& p2 = &b;
&&& exchange(p1, p2);
&&& printf(&\n%d %d\n&, a, b);&&&
&&& printf(&\n%d %d\n&, *p1, *p2);&&&&&&
void exchange(int *q1, int *q2)&&&//第一个函数
&&& void swap(int *qt1, int *qt2);
&&& if(*q1 & *q2)
&&&&&&&&swap(q1, q2);
void swap(int *qt1, int *qt2)&&& //第二个函数
&&& t = *qt1;
&&& *qt1 = *qt2;
&&& *qt2 =
搜索更多相关主题的帖子:
等 级:侠之大者
帖 子:140
专家分:470
楼主的提问方式估计大家很难接受哦!哈哈
不论是第一个函数还是第二个函数,本程序中传递的都是同一个内容,就是变量a和b所指的地址,这两个地址分别存储着变量
a和b的值,即5和6,其实你的函数中处理的就是变量a和b,
a--&xxxx1&&&&&&&&b--&xxxx2
&&& 5&&&&&&&&&&&&&&& 6
上面这个示意图xxxx表示的是内存地址
xxxx1 中存着变量a的值 -- 5
xxxx2 中存着变量b的值 -- 6
而传指针参数,就相当于把xxxx1和xxxx2 传进函数,所以当函数中对xxxx1和xxxx2进行赋值操作(写内存)时,
改变了xxxx1和xxxx2的内容,所以变量a和b的值也就被改动了,
呵呵,没有按照你的回答方式回答,请见谅!如果要是那样回答,我想你可能还是不明白是怎么回事的!
初学乍练,难免有错!
等 级:论坛游民
帖 子:49
专家分:65
你的答案都不标准,问题一答案传到第一个函数的是指针变量p1,p2的值,但它是a,b对应的地址!并不是5和6,也就是一个指针量;第二个答案也是一样的;两题你都应该加个选项D、所对应的变量a,b的存储地址!希望你能明白~
来 自:广东潮州
等 级:小飞侠
帖 子:1182
专家分:2784
回复 楼主 zpcg
一步一个脚印...............................默默地前进.....
诚邀乐于解答c菜鸟问题,的热心网友加入,&&QQ群
等 级:千里冰封
帖 子:1555
专家分:10000
楼主,类似的问题貌似问过的。“被调用函数不能直接修改主调函数中变量的值”,那就意味着可以间接修改,通过指针去修改。另外,楼主为了验证在被调函数中改变主调函数普通变量和指针变量的值,写了这两个测试函数,感觉有点绕。我另外写了swap_value和swap_pt,可以参考下。不对的地方可以讨论。
&&& 在调用函数里面改变主函数的数值,需要指向该变量的指针,因此,你要交换a,b的数值,需要传递&a,&b。因此你的 swap函数成功调换了a,b的数值;但是你要改变指针的值,那么同样需要指向指针的指针,因此需要有二级指针来完成。你用了1级指针当然达不到目 的了。
#include &stdio.h&
void main()
&&& void swap_pt(int **q1, int **q2);
&&& void swap_value(int *qt1, int *qt2);
&&& int a ,
&&& int *p1, *p2;
&&& scanf(&%d%d&, &a, &b);
&&& p1 = &a; p2 = &b;
&&& printf(&原来:\n&);
&&& printf(&p1=%p&&& p2=%p\n&, p1, p2);
&&& printf(&&a=%p&&& &b%p\n&, &a, &b);
&&& printf(&a=%d&&& b=%d\n&, a, b);
&&& swap_pt(&p1, &p2);
&&& printf(&\n\n交换指针后:\n&);
&&& printf(&p1=%p&&& p2=%p\n&, p1, p2);
&&& printf(&&a=%p&&& &b%p\n&, &a, &b);&&&
&&& printf(&a=%d&&& b=%d\n&, a, b);
&&& swap_value(&a, &b);
&&& printf(&\n\n交换数值后:\n&);
&&& printf(&p1=%p&&& p2=%p\n&, p1, p2);
&&& printf(&&a=%p&&& &b%p\n&, &a, &b);&&&
&&& printf(&a=%d&&& b=%d\n&, a, b);
void swap_pt(int **q1, int **q2)
void swap_value(int *qt1, int *qt2)
&&& t = *qt1;
&&& *qt1 = *qt2;
&&& *qt2 =
gcc编译后输出:
p1=0xbfb5fe1c&&& p2=0xbfb5fe18
&a=0xbfb5fe1c&&& &b0xbfb5fe18
a=12&&& b=45
交换指针后:
p1=0xbfb5fe18&&& p2=0xbfb5fe1c
&a=0xbfb5fe1c&&& &b0xbfb5fe18
a=12&&& b=45
交换数值后:
p1=0xbfb5fe18&&& p2=0xbfb5fe1c
&a=0xbfb5fe1c&&& &b0xbfb5fe18
a=45&&& b=12
[ 本帖最后由 pauljames 于
06:43 编辑 ]
经常不在线不能及时回复短消息,如有c/单片机/运动控制/数据采集等方面的项目难题可加qq。
等 级:论坛游民
帖 子:18
专家分:12
版权所有,并保留所有权利。
Powered by , Processed in 0.142672 second(s), 7 queries.
Copyright&, BCCN.NET, All Rights Reserved

我要回帖

更多关于 顶层指针调用成员函数 的文章

 

随机推荐