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的指针。
图示总结
联系客服