2010-09-06 5 views
3
#include "stdio.h" 
#include "conio.h" 

void swap(int *x,int *y); 

void main() 
{ 
int a=10,b=20; 
swap(a,b); 
printf("value of a=%d and b=%d"); 
getch(); 
} 

void swap(int *x,int *y) 

{ 
    if(x!=y) 
    { 
     *x ^= *y; 
     *y ^= *x; 
     *x ^= *y; 

    } 
} 

// Я получаю .. можите преобразовать Int в Int * ...не может преобразовать Int в Int *

может кто-нибудь сказать мне, почему так. и как его решить привет.

В ожидании быстрого и положительного ответа.

+1

Ваш призыв к' Printf.() 'также отсутствуют аргументы. Это должно быть 'printf (" значение a =% d и b =% d ", a, b);'. –

+3

Помимо ваших проблем, некоторые замечания: conio не является стандартным заголовком, stdio не следует включать через двойные кавычки, а void main также не входит в стандарт. Хотя это может сработать в вашей данной инструментальной цепочке, написание портативного и стандартного кода соответствия, вероятно, является хорошей идеей. –

+0

На каком языке вы нацеливаетесь? Не используйте теги языка. И [получить книгу] (http://stackoverflow.com/questions/388242/the-definitive-c-book-guide-and-list), похоже, что вам нужно научиться основам. – GManNickG

ответ

20

Ваш призыв к swap() должен включать амперсанд:

swap(&a,&b); 

swap ожидает указатели на int, так что вам нужно принять a и b «ы адреса при передаче их в

+0

Да, только то, что я хотел сказать, поэтому +1 –

+3

или эквивалентно 'void swap (int * x, int * y)' должно быть 'void swap (int & x, int & y)' (вместе с измененным телом курс) – doc

+2

@doc: Это не относится к C, что также является одним из тегов (только для того, чтобы быть полным и педантичным). –

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