포인터 배열 연산 구름 해설

edu.goorm.io/learn/lecture/201/한-눈에-끝내는-c언어-기초/lesson/1271948/포인터-연산과-배열


보면 저 프린트 문이 이해가 안갔는데 이유가 밝혀졌다. 


1>c의 후위연산의 특징 = ++를 하면 +=과 같은 효과가 나며 =가 필요없다.

파이썬의 경우 저 연산을 print내에서 하면 

할당문으로 저장을 해야 된다. 즉 p+=1처럼 =이 들어가야 한다. 

근데 c에서는 ++를 하면 =가 없어도 그게 저장이 된다. 


2>후위 연산의 특징 중 코어를 잊어버려서 해석못함

++를 하면 그 프린트 문에서는 ++로 더해진 효과가 프린트 안되고 ++를 하기 전과 

같은 값이 나온다는 사실을 잊어버렸다. 

그래서 저 프린트 문 해석을 못했다. 

프린트문에 저렇게 해서 로직 분리를 안 한 응용문으로 써서 초심자인 나는 해석을 못했다. 


이제 이글의 주제를 보자. 

맨 밑에가 사실 주제이다. 

포인터- 배열 변수는 ++나 +2 등의 연산이 

그 선언한 자료형에 따라 되어 해석된다는 것이다. 

좀 편한데 이걸 기본으로 하다니 너무 임의적 문법이 아닌가 걱정이 되긴 한다. 

자동으로 그 주소를 해석해서 즉 예로 

int의 경우 4바이트를 주소값에 더하는데 

그게 ++연산이나 +n연산에서 자동으로 그 자료형의 바이트에 맞춰서 

배열 요소가 하나씩 건너간다 


그리고 마지막 주제 핵심은 *(p+1) 이 들어간 괄호이다. 

바로이게 파이썬 등의 배열과 같은, 포인터문법을 이용한 배열 밸류 엑세싱이다. 

Previous Post Next Post