📅  最后修改于: 2023-12-03 15:39:26.608000             🧑  作者: Mango
在 C 语言中,指针是一种非常重要的数据类型。指针存储了一个变量的地址,通过指针,我们可以直接访问该地址上的值。指针表达式是通过指针操作符和运算符计算出一个指针值的表达式。本文将为你介绍 C 语言中的指针表达式,并提供示例代码。
&
运算符用于获取一个变量的地址。例如,下面的代码将获取 a
变量的地址:
int a = 10;
int* ptr = &a;
*
运算符用于获取指针所指向的变量的值。例如,下面的代码将获取 ptr
指针所指向的值:
int a = 10;
int* ptr = &a;
int b = *ptr; // b的值等于a的值,即10
我们也可以通过解引用运算符来修改指针所指向的变量的值,例如:
int a = 10;
int* ptr = &a;
*ptr = 20; // a的值现在为20
指针作为一种数据类型,可以进行各种运算。下面列举了 C 语言中的一些指针运算表达式:
指针加整数运算是将指针值加上一个整数。例如,下面的代码将指针 ptr
加上 1
,然后返回新的指针值:
int a[5] = {1, 2, 3, 4, 5};
int* ptr = a; // 等价于 int* ptr = &a[0];
int* ptr2 = ptr+1; // ptr2指向a[1]
指针减整数运算是将指针值减去一个整数。例如,下面的代码将指针 ptr
减去 1
,然后返回新的指针值:
int a[5] = {1, 2, 3, 4, 5};
int* ptr = &a[4]; // ptr指向a[4]
int* ptr2 = ptr-1; // ptr2指向a[3]
两个指针相减的结果为它们之间相差的元素个数。例如,下面的代码计算了指针 ptr2
和 ptr
之间的元素个数:
int a[5] = {1, 2, 3, 4, 5};
int* ptr = a; // 等价于 int* ptr = &a[0];
int* ptr2 = ptr+3; // ptr2指向a[3]
int count = ptr2 - ptr; // count等于3
指针与整数进行比较时,比较的是指针值和整数值的大小关系。例如,下面的代码比较了指针 ptr
和整数 a
的大小关系:
int a[5] = {1, 2, 3, 4, 5};
int* ptr = a; // 等价于 int* ptr = &a[0];
if (ptr < &a[2]) {
// ...
}
三目运算符也可以用于指针类型的变量。例如,下面的代码根据指针 ptr
是否为 NULL 来选择不同的值:
int* ptr = NULL;
int value = (ptr ? *ptr : 0);
本文介绍了 C 语言中的指针表达式,包括基本指针表达式和指针运算表达式。希望这些内容能够对你理解和使用指针有所帮助。