社区
C语言
帖子详情
C语言中指针
彭小碟iii
2021-03-08 12:01:29
请问一下各位大佬,在这个代码段中,为什么p=p+1是将p所对应的地址加1,且m所对应的值不变 #include<stdio.h>
void f(int *p,int *q);
main()
{
int m=1,n=2,*r=&m;
f(r,&n);
printf("%d,%d",m,n);
}
void f(int *p,int *q)
{
p=p+1;
*q=*q+1;
}
...全文
96
3
打赏
收藏
C语言中指针
请问一下各位大佬,在这个代码段中,为什么p=p+1是将p所对应的地址加1,且m所对应的值不变 #include void f(int *p,int *q); main() { int m=1,n=2,*r=&m; f(r,&n); printf("%d,%d",m,n); } void f(int *p,int *q) { p=p+1; *q=*q+1; }
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
3 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
源代码大师
2021-05-03
打赏
举报
回复
C和C++完整教程:https://blog.csdn.net/it_xiangqiang/category_10581430.html C和C++算法完整教程:https://blog.csdn.net/it_xiangqiang/category_10768339.html
paena
2021-03-09
打赏
举报
回复
m=1; n=2; r = &m; p=r; q=&n; 初始态是这样的,我帮你翻译下吧: p=p+1=r+1;到此结束,由于指针前没加解引用,因此这里是地址加1,此时p的值已经不是m的地址了。相当&m的地址基值,再加4个字节 再继续下去,其实p是个局部变量,对他再怎么改,也不会影响main函数的值,除非加上解引用,就是* 再看*q=*q+1,分2部分,一个看前面左值,一个看后面右值 *q=*(&n)=n ,于是得到*q为n //*和&互为逆运算 *q+1=*(&n)+1=n+1 ,于是得到*q+1 为n+1 于是:*q=*q+1就相当于:n=n+1
自信男孩
2021-03-08
打赏
举报
回复
因为p = p +1是地址值加1,不是地址值指向的内容加1.
与此不同的*q = *q + 1;就是q指向的内容加1.
免费下载:C
语言
难点分析整理.doc
1. C
语言
中
的
指针
和内存泄漏 5 2. C
语言
难点分析整理 10 3. C
语言
难点 18 4. C/C++实现冒泡排序算法 32 5. C++
中
指针
和引用的区别 35 6. const char*, char const*, char*const的区别 36 7. C
中
可变参数函数实现 38 8. C程序内存
中
组成部分 41 9. C编程拾粹 42 10. C
语言
中
实现数组的动态增长 44 11. C
语言
中
的位运算 46 12. 浮点数的存储格式: 50 13. 位域 58 14. C
语言
函数二维数组传递方法 64 15. C
语言
复杂表达式的执行步骤 66 16. C
语言
字符串函数大全 68 17. C
语言
宏定义技巧 89 18. C
语言
实现动态数组 100 19. C
语言
笔试-运算符和表达式 104 20. C
语言
编程准则之稳定篇 107 21. C
语言
编程常见问题分析 108 22. C
语言
编程易犯毛病集合 112 23. C
语言
缺陷与陷阱(笔记) 119 24. C
语言
防止缓冲区溢出方法 126 25. C
语言
高效编程秘籍 128 26. C运算符优先级口诀 133 27. do/while(0)的妙用 134 28. exit()和return()的区别 140 29. exit子程序终止函数与return的差别 141 30. extern与static存储空间矛盾 145 31. PC-Lint与C\C++代码质量 147 32. spirntf函数使用大全 158 33. 二叉树的数据结构 167 34. 位运算应用口诀和实例 170 35. 内存对齐与ANSI C
中
struct内存布局 173 36. 冒泡和选择排序实现 180 37. 函数
指针
数组与返回数组
指针
的函数 186 38. 右左法则- 复杂
指针
解析 189 39. 回车和换行的区别 192 40. 堆和堆栈的区别 194 41. 堆和堆栈的区别 198 42. 如何写出专业的C头文件 202 43. 打造最快的Hash表 207 44.
指针
与数组学习笔记 222 45. 数组不是
指针
224 46. 标准C
中
字符串分割的方法 228 47. 汉诺塔源码 231 48. 洗牌算法 234 49. 深入理解C
语言
指针
的奥秘 236 50. 游戏外挂的编写原理 254 51. 程序实例分析-为什么会陷入死循环 258 52. 空
指针
究竟指向了内存的哪个地方 260 53. 算术表达式的计算 265 54. 结构体对齐的具体含义 269 55. 连连看AI算法 274 56. 连连看寻路算法的思路 283 57. 重新认识:指向函数的
指针
288 58. 链表的源码 291 59. 高质量的子程序 295 60. 高级C
语言
程序员测试必过的十六道最佳题目+答案详解 297 61. C
语言
常见错误 320 62. 超强的
指针
学习笔记 325 63. 程序员之路──关于代码风格 343 64.
指针
、结构体、联合体的安全规范 346 65. C
指针
讲解 352 66. 关于指向
指针
的
指针
368 67. C/C++ 误区一:void main() 373 68. C/C++ 误区二:fflush(stdin) 376 69. C/C++ 误区三:强制转换 malloc() 的返回值 380 70. C/C++ 误区四:char c = getchar(); 381 71. C/C++ 误区五:检查 new 的返回值 383 72. C 是 C++ 的子集吗? 384 73. C和C++的区别是什么? 387 74. 无条件循环 388 75. 产生随机数的方法 389 76. 顺序表及其操作 390 77. 单链表的实现及其操作 391 78. 双向链表 395 79. 程序员数据结构笔记 399 80. Hashtable和HashMap的区别 408 81. hash 表学习笔记 410 82. C程序设计常用算法源代码 412 83. C
语言
有头结点链表的经典实现 419 84. C
语言
惠通面试题 428 85. C
语言
常用宏定义 450
C&C++
语言
学习大全套【精品】
2012-C&C++
语言
大全.zip C&C++
语言
教程大礼包.rar C_C+++
指针
的13份资料.zip C_C++程序员实用大全.zip C++程序设计
语言
特别版(
中
文版) .rar C
语言
大全第4版+源码.rar C
语言
阶梯式教程【从白痴到资深专家】 .pdf 你必须知道的495个C
语言
问题(完整版).rar
深入理解C
语言
指针
和结构体
本课程的主要目的是通过介绍C
语言
的
指针
、
指针
变量、静态内存分配、动态内存分配以及结构体等知识,实现C
语言
到Java以及Python编程的一个完美过渡.
C
语言
中
的
指针
详解
1.
指针
的定义 C
语言
中
指针
是一种数据类型,
指针
是存放数据的内存单元地址。 计算机系统的内存拥有大量的存储单元,每个存储单元的大小为1字节,为了便于管理,必须为每个存储单元编号,该编号就是存储单元的“地址”,每个存储单元拥有一个唯一的地址。
指针
变量除了可以存放变量的地址外,还可以存放其他数据的地址,例如可以存放数组和函数的地址。 2.
指针
的定义和初始化 格式:数据类型符 *
指针
变量名[=初始地址值]。 功能:定义指向“数据类型符”的变量或数组的
指针
变量,同时为其赋初值。
C
语言
中
指针
传递问题
C
语言
中
指针
传递问题 要求:用C
语言
通过调用函数实现两个值的交换 例如:输入5,9 —– 输出9,5 不能到达预期的结果的代码 #include&amp;amp;amp;lt;stdio.h&amp;amp;amp;gt; void main() { void swap(int *p1, int *p2); int a,b; int *pointer_1,*pointer_2; scan...
C语言
69,382
社区成员
243,073
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章