코드가 이해가 안됩니다.
장난감
질문 제목 :
질문 내용 :코드내용이 이해가 안됩니다.
#include stdio.h
#include string.h
void main()
{
int i;
char string[80], *ptr=null;
strcpy(string, this is a sample string.);
ptr=string; = 1.string은 ptr에 어떤값을 넘겨 주는지 모르겠습니다.
for(i=0; istrlen(string); i++)
{
printf(current point is -- %c\n,*ptr); = 2.*ptr 은 %c 에어떤값을 넘겨주는건가요? *ptr주소값을넘겨주는건가요?
ptr++; =3. 만약에주소값을 넘겨주면 주소값이 하나씩 증가 되는건가요?
}
}
4. 그리고 문자열 앞에 붙는게 *이면 값이고 &이면 주소값을 넘겨 주는거죠? 앞에 아무것도 않붙은 문자열은 그냥 값을 넘겨주는건가요?
-
은솔 2024-02-23
1번 2번은 수다님이 답변하셨고요...
3. 주소값이 하나씩 증가하는게 맞습니다.
4. 앞에 아무것도 붙지않는 문자열은 주소값을 넘겨주는것과 동일합니다.
즉, string = &string[0] 와같습니다. -
나예 2024-02-23
vc를 쓰신다면 디버그포인터를 찍어서 조사식에 값을 쳐보면 어떤값이 들어가는지 이해하기 쉽습니다.
-
새밝 2024-02-23
1. \This is a sample string.\의 시작 주소가 저장됩니다.
2. 빨간 2줄은 아래와 같습니다.
printf(\Current point is -- %c\\n\