2010-01-12 6 views
3

J'ai une variable Player1Visits qui est déclarée comme int.Comment puis-je comparer 2 entiers sans avoir d'avertissements?

Si j'essaie de comparer ceci à 1 en utilisant Player1Visits == 1 j'obtiens la comparaison d'avertissement entre nombre entier et pointeur. Dois-je utiliser un type différent?

+1

Il est essentiel de savoir de quelle langue vous parlez, il semble que cela puisse être C, s'il vous plaît étiqueter la question. La copie de la déclaration aiderait aussi car il semble que Player1Visits est effectivement déclaré comme un pointeur –

+0

Au lieu d'utiliser '* pointer' lors de la comparaison, je suggère de changer le type en' int' au lieu de 'int *'. Je ne pense pas que vous voulez un pointeur vers un int dans votre code de programme. Si vous le vouliez, vous comprendriez l'avertissement du compilateur. –

Répondre

2

Ne pas vous dire de comparer:

*Player1Visits == 1 
+0

merci c'est que j'utilise l'objectif c – Rupert

4

Je revérifier ce que Player1Visits est déclarée; Si vous obtenez cet avertissement du compilateur, ce n'est certainement pas un int. possibilités probables comprennent ce que @aronchick dit, où Player1Visits est un int* (un pointeur vers un int), de sorte que vous voulez comparer à l'aide:

*Player1Visits == 1

Une autre possibilité est que Player1Visits est une sorte d'objet avec un intpropriété, où vous voulez savoir quel nom de propriété que vous voulez et appeler:

[Player1Visits someIntProperty] == 1

(Ce dernier suppose que vous utilisez Objective-C, qui est (je crois) une hypothèse non déraisonnable compte tenu de votre choix IDE.)

3

Vous ne l'avez pas déclaré comme int, l'avertissement du compilateur l'indique. Peut-être que vous l'avez déclaré comme NSInteger *Player1Visits; ou int *Player1Visits;.

Si vous l'avez déclaré comme tel, supprimez le *.

Questions connexes