add(&imsi,lenth);는 안되는이유!
로운
2023.04.01
#include stdio.h
int main(void)
{
void add(int*, int);
int imsi[3]={7,4,5}; //요소 3개짜리 배열
int *imsip; //배열을가리킬 포인터마련
int i;
int lenth; //배열의 길이를 저장할변수
imsip=imsi; //배열을 가리키고
lenth=sizeof(imsi)/sizeof(int); //배열의 길이 3이 저장됨
add(&imsi,lenth); //add함수호출
for(i=0;ilenth;i++,imsip++)
printf( %d,*imsip); //17,14,15가 출력됨
return 0;
}
void add(int *imsip, int lenth)
{
int i;
for(i=0;ilenth;i++,imsip++) //각 배열의요소의 숫자들을 10씩증가시키자
*imsip+=10;
}
======================================
책에 있는 코드를 제가 확인차 변형해본겁니다.
제가 변형한부분은 &밖에없습니다.
원래코드에는 add(imsi,lenth); 인데
책에서 &imsi라고하면 안된다고하길래 (저는 된다고생각이 들어서)
해봤는데 되더군요 ;; 설마이게 운이좋아서 된건가요?
책을쓰신분이 잘모르고썼을리도없고 ;; 왜 잘만되는걸 안된다고했을까요?