- 博客(7)
- 收藏
- 关注
原创 指针学习(3)
数组指针变量的定义是这样的p先和*结合,说明p是⼀个指针变量变量,然后指着指向的是⼀个大小为10个整型的数组。所以 p是⼀个指针,指向⼀个数组,叫 数组指针。这里要注意:[]的优先级要高于*号的,所以必须加上()来保证p先和*结合。
2024-08-16 15:57:43 1046
原创 指针学习(2)
那么在函数内部我们写 sizeof(arr) 计算的是⼀个地址的大小(单位字节)而不是数组的大小(单位字节)。正是因为函数的参数部分是本质是指针,所以在函数内部是没办法求的数组元素个数的。我们发现在函数内部是没有得到真确的结果的,是因为数组传参的时候,传递的是数组名,也就是说数组传参,本质上传递的是数组首元素的地址。尤其注意的是:输出结果时,*(p+i)也可以写成*(arr+i)和arr[i],*(arr+i)和arr[i]是等价的。(整个数组的地址和数组首元素 的地址是有区别的)
2024-08-13 18:14:58 929
原创 指针学习(1)(2)
实际上,这就是传值调用,x和y确实接收到了a和b的值,不过x的地址和a的地址不 ⼀样,y的地址和b的地址不⼀样,相当于x和y是独立的空间,那么在Swap1函数内部交换x和y的值, 自然不会影响a和b,当Swap1函数调用结束后回到main函数,a和b的没法交换。就拿上面提到过的问题,打印数组a[10]={1,2,3,4,5,6,7,8,9,10}的内容,来说,如果一旦代码不小心写成一下这样,也是错误的。这就是传址调用,可以让函数和主调函数之间建立真正的联系,在函数内部可以修改主调函数中的变量。
2024-08-12 18:09:24 1173
原创 指针学习(1)(1)
上述代码中n是不能被修改的,其实n本质是变量,只不过被const修饰后,在语法上加了限制,只要我们在代码中对n就行修改,就不符合语法规则,就报错,致使没法直接修改n。• const如果放在*的左边,修饰的是指针指向的内容,保证指针指向的内容不能通过指针来改变。• const如果放在*的右边,修饰的是指针变量本⾝,保证了指针变量的内容不能修改,但是指针指 向的内容,可以通过指针改变。注意指针变量的大小和类型是无关的,只要指针类型的变量,在相同的平台下,大小都是相同的。& :取出相应变量的所储存的地址。
2024-08-11 16:28:26 1008
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人