2013-05-06 2 views
-6

Есть ли другой способ поменять адрес указателей на обмен значения?Есть ли другой способ поменять адрес указателей на обмен значения?

Ниже приведен один из способов сделать то же самое. Здесь мы не изменяем значения, сохраненные по адресу.

void Change_Address(int *&p, int *&pt) 
{ 
int *pp; 
pp = p; 
p = pt; 
pt= pp; 
} 
int main(void) 
{ 
    int a =3, b = 4, *p, *p1; 
    p = &a; p1 = &b;  
    printf("Values Before interchange %d %d\n", *p, *p1); 
    Change_Address(p, p1); 
    printf("Values after interchange %d %d", *p, *p1);  
    getch();  
    return 0; 
} 
+0

Что вопрос? – JonesV

+5

Это не 'C', это' C++ '. В 'C' нет ссылок. – Rohan

+0

Это нехорошо, это не важно, это не C, это не вопрос, и это не относится к StackOverflow. –

ответ

2

Ваш код использует ссылки, которые C++, в C вам придется использовать указатель на указатель:

void Change_Address(int **p, int **pt) 
{ 
int *pp; 
pp = *p; 
*p = *pt; 
*pt= pp; 
} 

int main(void) 
{ 
    int a =3, b = 4, *p, *p1; 
    p = &a; p1 = &b;  
    printf("Values Before interchange %d %d\n", *p, *p1); 
    Change_Address(&p, &p1); 
    printf("Values after interchange %d %d", *p, *p1);  
    getch();  
    return 0; 
} 

 Смежные вопросы

  • Нет связанных вопросов^_^