C提供了指针的一些基本操作,先来看赋值。 一、赋值 指针赋值可以有以下几种形式 1.使用数组名 2.使用带地址运算符(&)的变量 3.另一个指针 通过一个代码示例来演示 #include<stdio.h>int main(void){ int arr[5] = {100,200,300,400,500}; int *ptr1,*ptr2,*ptr3; ptr1 = arr; ptr2 = &arr[0]; ptr3 = ptr1; printf('ptr1 = %p\nptr2 = %p\nptr3 = %p\n',ptr1,ptr2,ptr3); return 0;} 该示例中定义了数组arr,定义了3个指针变量ptr1,ptr2,ptr3 ptr1 = arr;//把arr数组的首元素地址赋给指针ptr1。使用数组名方式 ptr2 = &arr[0];//把arr数组中的第1个元素地址(即元素100的地址)赋值给指针ptr2。使用&方式 ptr3 = ptr1;//将指针ptr1赋值给ptr3。使用另一个指针的方式 输出的结果 ptr1 = 000000b37d7ff8c0 ptr2 = 000000b37d7ff8c0 ptr3 = 000000b37d7ff8c0 可以看到3个指针变量都是相同的地址。需要注意的是声明指针的类型和地址应该兼容,如:int类型的地址应该赋值给指向int的指针。 图示总结 |
|