- 博客(14)
- 收藏
- 关注
原创 指针数组以及指针数组模拟二维数组的用法
简单说,parr[i][j] 是先通过指针数组 parr 拿到某一个一维数组的首地址(parr[i]),再通过指针偏移 + 解引用,访问到该一维数组第 j 个元素的值,本质是利用指针数组模拟二维数组的访问逻辑。存放指针的数组(数组是主)
2025-08-19 00:02:27
208
原创 还认为数组名全指的是数组首地址吗?那你就错了!
这正是 sizeof(arr)/sizeof(arr[0]) 能计算元素个数的原因 —— 此时 arr 代表整个数组,而非指针。&arr + 1 → 指向数组末尾的下一个位置(地址 + 20 字节,即整个数组的大小)。arr + 1 → 指向 arr[1](地址 + 4 字节);
2025-08-17 23:18:02
166
原创 还不明白函数的递归?一个简单的题目让你弄懂递归的基本原理
print(1234) → x>9 → 先调用 print(123)print(123) → x>9 → 先调用 print(12)print(12) → x>9 → 先调用 print(1)把大问题分解为同类型的小问题,通过解决小问题来最终解决大问题。回到 print(12) → 打印 12%10=2。回到 print(123) → 打印 123%10=3。回到 print(1234) → 打印 1234%10=4。print(1) → x≤9 → 打印 1。
2025-08-16 23:34:45
176
原创 为什么函数改不了实参?C 语言参数传递机制揭秘
函数接收的是实参的地址(指针),通过指针可以直接访问并修改实参所在的内存空间,从而改变实参的值。调用函数时,实参的值会被复制一份,传递给函数的形参(形参是实参的 “副本”);函数内部对形参的所有修改,都只针对这个 “副本”,不会影响实参本身。默认情况:值传递(无法改变实参)特殊情况:通过指针间接修改实参。
2025-08-16 16:58:25
352
原创 switch语句的使用
注意:字符类型也是属于整型的一种(基于ASCII码的整数映射或基于字符能直接参与整数运算),也就是说在case的后面可以是字符常量,但是字符常量需要加单引号,如case 'A',该字符会被编译器识别为对应的ASCII码(65)参与switch的匹配逻辑。switch后面的括号里必须是整型,且case后面要是整型常量表达式。在每个switch语句中都放一条default语句是个好习惯,一个switch语句中只能含有一个default。switch允许嵌套使用。
2025-08-16 00:00:55
190
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅