웹 사이트 포인터를 포인터로 사용하면 한 지점에 고정됩니다.포인터 생성 차이 구문
ı 주어진 예제를 쓸 때 ı ptr = arr과 같이 포인터를 증가시키기위한 포인터에 array의 주소를 할당 할 수 있습니다. 그것은 올바르게 작동하지만, ı가 감산 예와 똑같은 일을 할 때 그것은 작동하지 않습니다. 이것은 다음과 같이 씁니다. ptr = & arr [2]. 왜 ı가 감산 예를위한 앰퍼샌드를 써야 하는가? 그 둘의 차이점은 무엇인가?
int main()
{
int arr[3]={10,20,30};
int *ptr,i;
ptr=arr;
for(i=0;i<3;i++)
{
printf("adress of variable arr[%d] %x\n",i+1,ptr);
printf("value of arr[%d] = %d\n",i+1,*ptr);
ptr++;
}
return 0;
}
당신은 단지 포인터 사용을 작성할 필요가 없습니다
arr [2]가 int 유형이고 C를 사용하여 주소 –
을 얻으려면 &를 적용해야합니다. 배열은 주소가 다음과 같이 저하됩니다. ptr = array. 그러나 배열 [someoffset]은 표시된 오프셋의 실제 내용을 배열에 액세스하려고합니다. 배열에 오프셋의 주소를 얻으려면 코드는 다음 주소를 통해 주소를 가져와야합니다. & array [someoffset] – user3629249