#include<stdio.h>
int main(void)
{
int i;
int *p;
for (i = 1; i < 101; i++)
{
p = i;
printf("%d번째 주소의 값은 %dn", i, *p);
}
return 0;
}
정수형 변수와 정수형 변수를 가리키는 포인터를 선언하구요
for안에서 포인터가 가리키는 주소를 i로 초기화하고 그 값을 출력하는건데요
즉, 1부터 100에 저장된 값을 출력해야되는데요 초기화가 안됐으니 쓰레기값이 나와야겠지요
보면 틀린 부분이 없는거 같은데, 실행시켜보면 뭔가 심각한 오류가 뜹니다 왜 그럴까요
컴파일러 상에서 " '=' : 'int *'의 간접 참조 수준이 'int'과(와) 다릅니다. " 이런 경고를 띄우긴 하네요
double type variable에 int type data 처넣으면 어케 될까용 ^^
포인터의 수형을 double로 바꿔도 똑같습니다..
p = i; => p = &i;
포인터변수에는 주소를 넣어야지
그게 아니라, 그냥 1~100번지에 있는 쓰레기값을 출력해보고 싶은건데 음.. 1~100이라는 주소가 없는건가요
아니 내말은 자료형이 일치하지 않는다고 ㅡㅡ;
for문 안에 다지우고, printf("%d번째 주소값 %d", i, *(p+i) ); 해봐라