C언어 - 포인터와 배열

2020. 11. 11. 22:27개인공부/C언어

int main(){

	int arr[10];
    
    const int num = sizeof(arr) / sizeof(arr[0]);
    for(int i=0; i < num; i++)
   	 	arr[i] = (i+1) * 100;
    
    int *ptr = arr;
    
    printf("%p %p %p\n", ptr, arr, &arr[0]);
    
    ptr += 2;
    
    printf("%p %p %p\n", ptr, arr + 2, &arr[2]);
    
    //Note : arr += 2; //invalid
    
  
    return 0;
    }

 

동적할당을 받은 메모리를 배열처럼 포인터를 통해서 사용을 실전에서 더 많이 사용

 

배열을 직접 포인터 연산을 할수는 없다.

arr += 2; 처럼 쓸수 없다. 

 

 

int* ptr = arr;

for (int i =0 ; i< num; i++)
{
	printf("%d %d\n", *ptr++, arr[i]);
}

return 0;

arr[]과 *ptr 같은 값이 나온다.

 

 

 

 

 

 

 

 

 

출처 : 홍정모의 따라배우는 C언어