我不確定如何以不同的方式調用此兩個指針,請更正我的條款。指針與地址參考之間的區別
#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