我不确定如何以不同的方式调用此两个指针,请更正我的条款。指针与地址参考之间的区别
#include <stdio.h>
int main()
{
int arr[3]={10,20,30};
int * ptr = &arr[0];// arr
return 0;
}
arr和* ptr之间有一些区别吗? 两人都指向同一地址,但有什么区别。
我不确定如何以不同的方式调用此两个指针,请更正我的条款。指针与地址参考之间的区别
#include <stdio.h>
int main()
{
int arr[3]={10,20,30};
int * ptr = &arr[0];// arr
return 0;
}
arr和* ptr之间有一些区别吗? 两人都指向同一地址,但有什么区别。
arr
是一个数组而ptr
是类型为int
的指针。
有差异。让我列举几个
sizeof(arr)
是sizeof(ptr)
ptr
而arr++
是一个无效的操作做ptr++
指针操作。去你的是什么指针和数组之间的区别评论我已经回答了你的问题
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;
是无效的,因为阵列不能为一个修改的左值
'是有一些差异ARR和* PTR'
是的,有。例如sizeof(*ptr)
的大小为int
的值,即sizeof(int)
,而sizeof(arr)
是整个阵列的大小,等于3*sizeof(int)
。
本网站有1000个问题。请做一些搜索。 – P0W
我的不好,我不知道如何调用arr和* ptr。 – kingyum
也许你称他们为指针? – ckruczek