포인터로 swap할때요
환찬
포인터 배열에서요 질문있습니다. swap할때포인터가 주소
질문 내용 : 포인트가 주소값을 받을때요 예를들어 *p=&a로 받고
a를 나타내기 위해서 *p를 쓰잖아요
근데 int a[]={1,2,3,4,5} 라고하고 int *p=a 라고 지정을하면
포인터로a값을 찍으려면
for(i=0;i5;i++)//i는 선언했다고 하고요
printf(%d p[i]);
라고 하면 a값들이 찍히는거죠?
근데 swap으로 돌릴때
int* temp;//까지 선언하고 하면요 밑에 소스는 제가 그냥 시험삼아서 첫번째랑 두번째랑만 바꾸는 소스인데
#include stdio.h
int main(void)
{
int a[]={1,2,3,4,5};
int* p=a;
int* temp;
int i;
temp=p[0];
p[0]=p[1];
p[1]=temp;
for(i=0;i5;i++)
printf(%d , p[i]);
printf(\n);
for(i=0;i5;i++)
printf(%d , a[i]);
printf(\n);
return 0;
}
위 소스로 돌리면 둘다 바뀌더라고요
제가 원하는건 원본자료는 가만히 있고 포인터로 지정하는 값만 바뀌는 건데요
예를들어 위 소스에서 첫줄은 2 1 3 4 5 두째줄은 1 2 3 4 5 라고 뜨는건데 안되더라고요
배열이 아니고 a=10, b=20 *pa=&a, *pb=b라고 하고 만들면 이소스로는 위방법으로 하면 되던데
배열로 하니깐 안되서요... 부탁드립낟...
번호 | 제 목 | 글쓴이 | 날짜 |
---|---|---|---|
2692483 | C언어 함수, Header | 떠나간그놈 | 2025-04-23 |
2692451 | 이 문제좀 풀어주세요 ^^ | 게자리 | 2025-04-23 |
2692424 | 2차원배열 자료입력질문이요! (1) | 똘끼 | 2025-04-22 |
2692401 | 유닉스안에서 C언어를 이용한 명함 만들기 입니다; 이해안가는 부분이있네요 | 2gether | 2025-04-22 |
2692374 | 고수님들 댓글 마니부탁해요!!! (2) | 엄지 | 2025-04-22 |
2692343 | scnaf에 자꾸 선언을 참조하라는데;; (8) | 도래 | 2025-04-22 |
2692282 | 도스상에서 생성된 exe파일에 press~ 뜨게 하기 (4) | 회사원 | 2025-04-21 |
2692256 | scanf("%*c"); ㅠㅠ 고수님들 | 거북이 | 2025-04-21 |
2692230 | 하노이탑 질문입니다. (1) | 미쁘다 | 2025-04-21 |
2692210 | 정보 올림피아드 문제인데.. 풀이 과정이 궁금합니다.(재귀함수) (5) | 물티슈 | 2025-04-20 |
2692144 | C언어와 리눅스에 대한 질문입니다. | 싴흐한세여니 | 2025-04-20 |
2692114 | 컨텍스트 스위칭하는데 걸리는 시간 측정.. | YourWay | 2025-04-19 |
2692086 | 간접참조 연산자, 증감연산자 질문이용! (2) | 블랙캣 | 2025-04-19 |
2692056 | 주석좀 달아주세요. 몇개적엇는데 몇개만달아주세요. (2) | DevilsTears | 2025-04-19 |
2691978 | 진수 쉽게 이해하는법... (3) | 지지않는 | 2025-04-18 |
2691949 | getchar() 한 문자를 입력받는 함수 질문 | 채꽃 | 2025-04-18 |
2691919 | 배열 정렬 및 합치기 질문입니다. | 사과 | 2025-04-18 |
2691845 | c언어왕초보 질문이 있습니다........ | 루나 | 2025-04-17 |
2691815 | void add(int num); 함수... (4) | 살랑살랑 | 2025-04-17 |
2691756 | 명령 프롬프트 스크롤바가 없어요 | 두메꽃 | 2025-04-16 |