#考试酷#D1_Pointers and Addresses

这篇博客探讨了指针和地址的概念,区分了一级指针和二级指针的用法。通过示例说明了如何通过二级指针间接修改变量的值。同时,解释了数组指针的特性,指出数组名在某些情况下可以被当作指针使用,如`arr`、`p`、`&arr[0]`在指向上是等价的。文章还提到,指针的级别没有限制,但理解多级指针的含义和操作需要注意。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


**p :二级指针,表示p所指向的地址里面存放的是一个指向类型的指针。

*p:一级指针,表示p所指向的地址里面存放的是一个类型的值。

在这里插入图片描述


1
k👉5
p👉k👉5
*m👉p👉k👉5
所以输出的是5 5 5


2
*p是一个一级指针
如果要输出二级指针应该printf的是**m


3
**m👉*p👉k👉5
改变 6 就可以之间改变k


4
说过了r是一个一级指针 应该写r或者另外设计一个二级指针


5
数组指针问题——

int arr[] = { 99, 15, 100, 888, 252 };
int *p = arr;

arr 本身就是一个指针,可以直接赋值给指针变量 p。arr 是数组第 0 个元素的地址,所以int *p = arr;也可以写作int *p = &arr[0];。也就是说,arr、p、&arr[0] 这三种写法都是等价的,它们都指向数组第 0 个元素,或者说指向数组的开头。再强调一遍,“arr 本身就是一个指针”这种表述并不准确,严格来说应该是“arr 被转换成了一个指针”。

在这里**r👉*p👉a[0]的地址


6
可以有多少级指针——没有限制


7
这里我也不太明白 感觉是不是这个题的问题还是什么的


8
相同道理
**r👉*p👉a[0]的地址【也是a的地址】


### 如何在 QT 中使用 `EXCEPTION_POINTERS` 进行异常处理 #### 使用 `EXCEPTION_POINTERS` 结构体捕获异常信息 当应用程序发生未处理的异常时,可以通过定义一个自定义的异常处理器函数来获取详细的错误信息。此函数接收指向 `EXCEPTION_POINTERS` 的指针作为参数[^2]。 ```cpp #include <windows.h> #include <tchar.h> LONG WINAPI MyUnhandledExceptionFilter(_In_ struct _EXCEPTION_POINTERS* ExceptionInfo) { // 获取异常记录 PEXCEPTION_RECORD pRecord = ExceptionInfo->ExceptionRecord; // 打印异常码和其他有用的信息到调试器或日志文件中 TCHAR szMsg[1024]; wsprintf(szMsg, TEXT("An unhandled exception occurred at %p: 0x%X\n"), ExceptionInfo->ExceptionRecord->ExceptionAddress, ExceptionInfo->ExceptionRecord->ExceptionCode); OutputDebugString(szMsg); return EXCEPTION_EXECUTE_HANDLER; // 返回值告诉操作系统如何响应这个异常 } ``` 为了使上述代码生效,在程序启动初期设置当前线程的异常过滤器: ```cpp SetUnhandledExceptionFilter(MyUnhandledExceptionFilter); ``` 这允许即使是在Qt事件循环之外发生的严重错误也能被捕获并报告给开发者以便于诊断问题所在。 对于更复杂的场景,比如希望集成进Qt的消息框显示制而不是仅仅依赖于调试字符串输出,则可以进一步扩展该方法以调用相应的GUI组件展示警告对话框等操作[^4]。 此外,值得注意的是虽然这里展示了基于 Windows API 的解决方案,但在跨平台项目里应当考虑其他平台上类似的制(如Linux上的signal handler),从而实现更加通用的应用层异常恢复逻辑[^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值