我是C编程的新手.在解决我的一个课堂作业时,我遇到了以下代码片段.我不明白它的作用.
可以任何人告诉我下面的C语法是什么意思,
((char *)0 +1) or ((int*)0 +1))
Run Code Online (Sandbox Code Playgroud)
该(char *) 0部分在地址0处创建指向字符数据的指针.然后,该地址递增1,触发未定义的行为,因为指向地址0的指针(也称为NULLC)不能用于指针算术.第二部分做同样的但是指向整数数据的指针.
如果编译器只是将NULL地址视为地址(这是常见的,但同样不需要,这就是为什么这是未定义的行为),如果以数字方式查看,结果地址将不相同,因为C中的指针算法是按照指向的类型,通常sizeof (int) > sizeof (char).
| 归档时间: |
|
| 查看次数: |
415 次 |
| 最近记录: |