게시판 즐겨찾기
편집
드래그 앤 드롭으로
즐겨찾기 아이콘 위치 수정이 가능합니다.
c언어 포인터에서 반환값 질문점요 ㅠㅠ;
게시물ID : programmer_1191짧은주소 복사하기
작성자 : ㅎㅂㅎ
추천 : 0
조회수 : 349회
댓글수 : 1개
등록시간 : 2014/02/13 16:15:32
#include
int* bb(int* qwe);   // 배열을 저장할 함수
double* aa(int* b);  // 메인에서 주소를 받아서 그 주소에 저장된 값을 출력할 함수
int main(void)
{
 
 int* bbb=0;   
 int* aaa;
 
 
 aaa=bb(bbb);   // 함수 bb를 불러서 값을 입력받고 그값을 반환해서 주소 aaa에 저장한다
 printf("%d %d",*aaa,*(aaa+1));    // 주소 aaa를 출력한다
 aa(aaa);     // 주소 aaa를 함수 aa로 보낸다

}
double* aa(int* b)
{
 printf("%d %d", *b, *(b+1));  // 받은 주소 aaa를 출력해본다
 
 return 0;
}
int* bb(int*qwe)
{
 int bb[2] = {1,2};  //bb라는 배열을 선언해서 1,2를 입력한다
 
 qwe=bb;      // 배열 bb를 주소인 qwe에 저장한다
 return qwe;  // 주소 qwe를 반환한다 , 메인 함수에서는 aaa에서 저장이된다
 
}
 
위에서 보시면 제가 bb함수 에서 배열로 1,2,숫자를 입력 받아서 메인 함수로 리턴을 시켜서 주소 aaa에 저장을 시켰거든요
그런다음 주소 aaa를  printf("%d %d",*aaa,*(aaa+1));로 출력시키니깐 1,2가 제대로 출력이 되요
그다음에 다시 주소 aaa를 함수 aa로 보내서   printf("%d %d", *b, *(b+1));로 출력시켰더니 쓰레기 값이 나와요..
제 생각에는  printf("%d %d", *b, *(b+1));를 해도 1,2가 출력 될것이라 생각했는대 그이유를 도대체 모르겠어요..
전체 추천리스트 보기
새로운 댓글이 없습니다.
새로운 댓글 확인하기
글쓰기
◀뒤로가기
PC버전
맨위로▲
공지 운영 자료창고 청소년보호