C 语言地址运算符

2024 年 8 月 28 日 | 3 分钟阅读

C 语言的地址运算符是一个强大的工具,它使程序员能够直接访问内存位置。它用'&'符号表示。地址运算符是一个一元运算符,它返回变量的内存地址。

语法

以下是 C 语言地址运算符的语法

在这种情况下,需要获取地址的变量称为“variable_name”

让我们看一个例子来进一步理解地址运算符的用法。

输出

程序的输出将如下所示

The address of num is 0x7fff5fbff7ac

说明

在上面的程序中,我们声明了整型变量“num”并将其初始化为数字10。我们使用printf()函数输出了变量“num”的内存地址。内存地址使用'%p'格式说明符以十六进制格式打印。

运行程序时,屏幕上会显示变量'num'的内存位置。在本例中,内存地址是'0x7fff5fbff7ac'

地址运算符的用途

1. 将指针作为函数参数传递

指针作为函数参数传递是地址运算符的主要用途之一。指针是跟踪其他变量内存地址的变量。通过将变量的地址作为函数参数传递,可以更改调用函数中变量的原始值。

输出

程序的输出将如下所示

Before swapping: x = 10, y = 20
After swapping: x = 20, y = 10

说明

在上面的程序中,声明了函数“swap”,它接受两个整型指针作为输入。在函数内,我们使用地址运算符访问了指针指向的变量的值。然后,使用一个临时变量,我们交换了变量的值。

在 main 函数中定义了两个整型变量'x''y',它们分别被赋予了初始值1020。使用printf()函数打印了使用'swap'函数之前之后这两个变量的值。将'x''y'的地址作为参数传递给了'swap'函数。

2. 动态内存分配

地址运算符也用于动态内存分配。使用malloc()函数,动态内存分配允许运行时内存分配。地址运算符可用于访问使用 malloc() 函数返回的指针分配的内存块。

输出

程序的输出将如下所示

Enter the number of elements: 5 
Enter element 1: 10
 Enter element 2: 20 
Enter element 3: 30 
Enter element 4: 40 
Enter element 5: 50 
The elements of the array are: 10 20 30 40 50

说明

在上述程序中,我们声明了变量'n''i',以及一个整型指针'arr'。将提示用户使用printf()方法提供数组的元素数量。

我们使用malloc()函数为引用“arr”分配内存。数组中每个整型元素的大小由'sizeof(int)'选项指定。如果内存分配失败,程序将显示错误消息后退出。

我们使用for 循环从用户那里读取数组的元素。可以使用地址运算符访问数组的每个元素。我们使用另一个 for 循环将数组的元素打印到屏幕上。