C语言取消引用指针

示例

int a = 1;

int *a_pointer = &a;

要取消引用a_pointer并更改a的值,我们使用以下操作

*a_pointer = 2;

可以使用以下打印语句对此进行验证。

printf("%d\n", a); /* Prints 2 */

printf("%d\n", *a_pointer); /* Also prints 2 */

但是,将一个NULL指针取消引用或其他无效指针将是错误的。这个

int *p1, *p2;

p1 = (int *) 0xbad;

p2 = NULL;

*p1 = 42;

*p2 = *p1 + 1;

通常是未定义的行为。p1可能不会被取消引用,因为它指向的地址0xbad可能不是有效地址。谁知道那里有什么?它可能是操作系统内存,或另一个程序的内存。仅在嵌入式开发中使用此类代码,它会将特定的信息存储在硬编码的地址上。p2无法取消引用,因为它是NULL,这是无效的。

以上是 C语言取消引用指针 的全部内容, 来源链接: utcz.com/z/338808.html

回到顶部