본문 바로가기

정보처리기사/c언어강의

[C언어(강의)] 25강~28강 (배열과 포인터)

 

[ 흥달쌤 유투브 강의 정리 

https://www.youtube.com/watch?v=kIwVLkLdACo

 


 

(25강) 배열과 포인터(1)

 

=> 37 47 57 67 77

배열  a  :  a[0]  a[1] ........ a[9]

      100     100  101 ....... 109   (번지수)

int *ptr = a+3   => 100+3 = 103

           i   :  0   1   2   3   4*(ptr + i)  : 40 50 60 70 80

 


 

(26강) 배열과 포인터(2)

 

* 배열과 포인터의 관계

int a[5]

배열  a  :  a[0]  a[1]  a[2]  a[3]  a[4]  

      100    100  101  102  103  104   (번지수)

int *b = a;       => b는 100번지

a[2] = 10;       => a[2]는 10

b[2] = 20;       => b[2]는 a[2]값을 참조 => a[2]는 20

* 포인터도 배열처럼 사용 가능.


 

=> 8 10

배열  a  :  a[0]  a[1]  a[2]  a[3]  

  p : 100    100  101  102  103   (번지수)

배열  a = { 1, 4, 5, 8 }

=> 4+4, 5+5 

 

int *p = a+1 이라면 ?    => 7, 8

 


 

(27강) 배열과 포인터(3)

 

=> a[0] = 10, a[1] = 100, a[2] = 30

배열  a  :  a[0]  a[1]  a[2]  a[3]  

  p : 100    100  101  102  103   (번지수)

p++       => p = 101

*p++      => 101번지에 100할당 후 '++' 적용.  => p = 102

*++p      =>  '++' 적용한 p인 103번지에 200할당.

배열 a = {10, 100, 30, 200}

 


 

(28강) 배열과 포인터(4)

 

=1  5  30  4

배열  a  :  a[0]  a[1]  a[2]  a[3]  

 pt : 100    100  101  102  103   (번지수)

pt ++              =>  pt = 101

* pt ++ = 5      =>   a = {1, 5, 3, 4} ,   pt = 102

* pt ++ = 10    =>   a = {1, 5, 10, 4} ,   pt = 103

pt --                 =>  pt = 102

* pt ++ += 20   =>   a = {1, 5, 30, 4} ,   pt = 103

배열  a = {1, 5, 30, 4}