- 博客(6)
- 收藏
- 关注
原创 二维数组指针的一些深度思考(地址,偏移量)
printf("%d\n",**(p+2))和printf("%d\n",p[2][0])一样 因为可以这么理解 p=a ,所以a[2][0]当然可以写成p[2][0]int a[3][6]={{1300,25,12,2,4,56},{78,54,5,6,7,44},{8,895,254,9,10,11}};//代表a[2]行的首地址,*(p+2)表示a[2][0]的地址,**(p+2)表示a[2][0]的值。//代表a[0][2]的元素的地址 *(*p+2)表示a[0][2]的值。
2024-10-08 15:37:35
376
原创 指针相关知识点
有个问题:函数里面构造的形参参数,变量在函数调用结束后就消失了变量,但是相应地址里面的内容应该还有,除了用返回值,我们无法把函数里面的变量的值传到外面的全局变量中,也就是main函数中。用指针就可以解决这个问题,直接在外部定义变量,把函数里面的形式参数定义为指针,直接操作外部变量的地址。把指针指向这个函数里面构造的数组的首地址,函数调用完了之后,这个数组其实就消失了,但是里面相应地址里存放的内容还在,所有后面全局变量*p指针指向的这些数组地址就还能去除里面的内容(分析出来的,很可能就是这样。
2024-09-26 00:10:32
1437
原创 scanf 和getchar()关于回车键问题
注意:这里第一个回车\n是scanf发现了回车\n,则表示前面的东西可以带走输入了,但是前面什么都没有,所以只能带走\n,紧接着到第二个scanf,也是这样,遇到第二个\n(回车),就知道要带走前面的内容了,但是同样什么都没有,就把\n带走了。或者理解为遇到\n就吸入缓冲区的东西,不管是什么,都吸走,如果本身是\n也吸走,此时缓冲区什么都没有了,再次敲击\n又重复一次这个行为。scanf和getchar()都是读取缓冲区的东西,如果读到回车健\n就会把缓冲区的字符带走到函数里面,同时留下回车\n。
2024-09-19 14:08:22
929
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅
2