c언어 입문자 포인터 관련 질문이 있습니다.
201
작성자 없음
投稿した質問数 0
int main()
{
int num1 = 10;
int num2 = 15;
int temp =0;
int *ptr1 =&num1;
int *ptr2=&num2;
temp = ptr1;
ptr1= ptr2;
ptr2 = temp;
printf(" *ptr1 : %d , *ptr2 : %d,", *ptr1, *ptr2);
}
ptr1이 가리키는 변수와
ptr2가 가리키는 변수를 서로 바꿔
ptr2는 num1을 가리키고, ptr1은 num2를 가리키게 하는 함수를 만들어보았습니다.
물론
ptr1 = &num2;
ptr2 = &num1; 이렇게 하는 간단한 방식도 있다는 걸 알지만, 어쩌다가 저 부분에 궁금증이 생겼는데,
위와같이 temp를 그냥 int temp = 0; 으로 선언하면 컴파일이 제대로 이루어지지 않지만,
int *temp; 와 같이 포인터 변수로 선언하면, 문제 없이 작동하는 걸 확인하였습니다.
저는 포인터 변수를 선언하면, *ptr이라는 변수가
ptr에는 가리키는 변수의 주소가 상수로 저장이 되고,
*ptr은 ptr이라는 변수에 상수로 저장된 주소에 접근하는 일종의 연산이라고 생각하였기에,
ptr에 저장된 상수(주소값)을 int 형으로 선언된 일반 변수(temp)에 저장하고, 그것을 다시 다른 변수(ptr2)에 옮겨도 문제가 없을 것이라고 생각했는데,
temp라는 일반 변수에서는 오류가 발생하고,
*temp라는 포인터 변수에 저장을 해야만 제대로 작동하는 것을 확인하였는데
왜 *temp로 선언해야만 제대로 작동하는 지 이유가 궁금합니다..!
回答 1
14.22 포인터에 대한 질문
1
96
1
swap 함수 작성하기
1
367
1
(6.9) 포인터 주소를 찍어보는 구간에서 질문이 하나 생겼어요.
1
404
2
포인터 문자열 할당시 +1해주는 이유
0
673
1
int형 변수 배열에 대한 포인터에.....
0
448
1
포인터 공부중 *와 &의 차이가 궁금해졌습니다!
0
358
2
포인터, 배열 관련 질문
0
410
1
The argument has type 'unsigned long'
0
1206
1
기호상수 관련해서
0
299
1
C언어로 푼 코드는 없나요?
0
317
1
2차원 배열과 포인터 개념 질문이 있습니다.
0
300
1
포인터 기초#2 궁금한점입니다.
0
295
1
메모리 할당 해제 이후의 배열 원소 접근 문제
0
360
1
6.9강을 듣다가 포인터로 실험을 해보았는데 이해가 안 가는 부분이 있어서 질문 드립니다
0
286
1
구조체 포인터 선언의 기억공간 할당 여부
0
327
1
scanf 입력한 수 중 일부 자리만 저장
0
348
1
따배씨 스터디 많은 관심 부탁드립니다 ㅎ
0
319
1
8.5강 5분 5초 질문있습니다. getchar을 scanf로 바꿔도 되나요?
0
261
1
while문이 안돌아가는 이유가 궁금합니다...
0
2496
1
배열 역순관련 질문드립니다.
0
364
1
포인터 개념 질문드립니다
0
323
1
포인터 연산자...에 대해 질문있습니다~~!
0
300
2
배열과 포인터의 산술 연산
0
432
1
참조변수 질문이요
4
608
2

