gpt4 book ai didi

c - 指针和地址引用之间的区别

转载 作者:行者123 更新时间:2023-11-30 19:36:35 25 4
gpt4 key购买 nike

我不确定如何以不同的方式调用这两个指针,因此请更正我的术语。

#include <stdio.h>

int main()
{
int arr[3]={10,20,30};
int * ptr = &arr[0];// arr

return 0;
}

arr 和 *ptr 之间有什么区别吗?两者都指向同一个地址,但有什么区别。

最佳答案

arr 是一个数组,ptr 是一个 int 类型的指针。

有差异。让我列举一些

  1. sizeof(arr)sizeof(ptr)
  2. 您可以使用 ptr 进行 ptr++ 指针操作,而 arr++ 是无效操作。

根据您对指针和数组之间区别的评论,我已经回答了您的问题

int a = 10;
int b[5] = {1,2,3,45};
int *p = &a;
b = &a; /* not valid */

b 是一个数组而不是指针,因此它不能保存变量的地址。

p = b;
p = p +1;

printf("%d\n",*p); /* valid as p is pointing to second element in the array */

b = b+1;

无效,因为数组不能是可修改的左值

关于c - 指针和地址引用之间的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40649064/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com