1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
/*두 문자열의 내용을 서로 교환하는 함수를 포인터를 이용하여 작성하라.*/
#include <stdio.h>
 
void swapStr(char **str1, char **str2)
{
    char *temp;
    
    temp = *str1; //*str1에는 ass의 주소(&ass)가 들어있다. 그러니까 temp는 그냥 포인터다. 이중포인터가 아님.
    *str1 = *str2;
    *str2 = temp;
    
}
 
int main(){
    
    char *dat = "||||  ";
    char *ass = "$$$$  ";
    
    
    printf(dat);
    printf(ass);
    printf("--------------------------------  ");
    swapStr(&ass, &dat);
    printf(dat);
    printf(ass);
 
    return 0;
}
 
 
cs

스와핑 저도 정말 좋아하는 데요

제가 한번 해보겠습니다.


아우 빡쳐 개어렵당

함수를 

1.

void swapStr(char *str1, char *str2){...}

swapStr(ass, dat);

요렇게 하면 안되는 이유를 정확히 설명하지 못하겠어요. 도움!

2.

&ass와 ass는 다른데

ass == &ass[0]이고 

&ass는 포인터 변수 ass 자체의 주소값인 듯?