数组指针赋值问题有哪些

后端 (47) 2023-11-26 10:12

Hi,大家好,我是编程小6,很荣幸遇见你,我把这些年在开发过程中遇到的问题或想法写出来,今天说一说数组指针赋值问题有哪些,希望能够帮助你!!!。

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的指针。

图示总结

数组指针赋值问题有哪些_https://bianchenghao6.com/blog_后端_第1张

今天的分享到此就结束了,感谢您的阅读,如果确实帮到您,您可以动动手指转发给其他人。