코딩

c언어 메모,정리 배열,포인터 -3일차 두번째

Davinc2 2022. 12. 7. 14:22

헬로우 월드;

 

책을 보고 제가 이해한걸 토대로 작성하기 때문에 틀린 점 발견 시 지적하셔도 됩니당.

책 보고도 틀리면 노답이긴한데 ㅋㅋㅋ;;

 

 

포인터로 배열주소 저장하여 사용하기

 

배열은 사용할 메모리 그룹의 시작 위치를 기준으로 색인 작업된 요소의 위치를 계산하여 사용

char형으로 선언한 data 배열의 3번째 요소 (data[2])를 sum변수에 10번 더하는 코드

 

char data[5] {1,2,3,4,5};

int i, sum = 0, select = 2;                   //sum 변수에 data[select]값을 10번 더함,datap[2]요소 값을 10번 더하는 것과 같음.

 

for(i = 0; i < 10; i++) sum = sum + data[select]; //data[select]는 select가 2이므로 data[2]

 

포인터를 사용하면 더 효율이 좋다.

char data[5] {1,2,3,4,5};

int i, sum = 0, select = 2;

 

char *p = data + select;                       //data + select == &data[select];

for(i = 0; i < 10; i++) sum = sum + *p;

 

for문으로 잠깐 다시 이해해보면

 

for(i = 0; i < 5; i++){

        result = result + *p;   //포인터 변수 p가 가리키는 대상의 값을 result에 합산

        p++;                            //data 배열의 다음 항목으로 주소를 이동:data[0] -> data[1] ...data[5]까지

 

 

이거 이해하면 이건건  끝인듯 세 번째로...