![MQL5 - Langage des stratégies de trading intégré au terminal client MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
Vous manquez des opportunités de trading :
- Applications de trading gratuites
- Plus de 8 000 signaux à copier
- Actualités économiques pour explorer les marchés financiers
Inscription
Se connecter
Vous acceptez la politique du site Web et les conditions d'utilisation
Si vous n'avez pas de compte, veuillez vous inscrire
Quelle était l'action avant cela ?
La mise à jour est-elle utile ?
J'ai ouvert le terminal après quelques jours de non-utilisation. J'ai cette photo. Puis j'ai utilisé le script pour télécharger l'historique. Pas de changement. J'ai attendu quelques heures. Tout va bien maintenant.
Pouvez-vous expliquer pourquoi, selon les résultats de l'exécution, x==0 et y==1 ? Construction 342
PS. Il faut lire ... x==1 et y==0 ...
Pouvez-vous expliquer pourquoi, selon les résultats de l'exécution, x==0 et y==1 ? Construction 342
Consultez le site https://www.mql5.com/ru/docs/basis/operations/mathoperation
Le compilateur n'affiche pas d'erreurs ou d'avertissements ?
Pouvez-vous expliquer pourquoi, selon les résultats de l'exécution, x==0 et y==1 ? Construction 342
Nous avons vérifié, le résultat est x=1, y=0.
le premier incrément x=x++ se décompose en
t=x; // x=0
x++; // x=1
x=t; // x=0
Pouvez-vous expliquer pourquoi, selon les résultats de l'exécution, x==0 et y==1 ? Construction 342
Oui, nous le pouvons. Il s'agit de la mise en œuvre de x = x++ ;
Avant la postincrémentation, la valeur x est enregistrée dans une variable temporaire. Ensuite, un incrément est effectué. Ensuite, une affectation est effectuée à partir de la variable temporaire.
Regardez ici https://www.mql5.com/ru/docs/basis/operations/mathoperation
Le compilateur n'affiche pas d'erreurs ou d'avertissements ?
Le compilateur MT5 l'avale en silence ! Il ne compile pas dans MT4.
Par curiosité, j'ai essayé une construction similaire en C++ (à partir de Visual Studio 2005) et le résultat pour x et y est le même.
Pouvez-vous expliquer pourquoi, selon les résultats de l'exécution, x==0 et y==1 ? Construction 342
Vous devez initialiser les variables avant d'effectuer des opérations sur elles. Si vous l'assignez simplement à une variable non initialisée, tout ira bien.
Cependant, c'est toujours une bonne idée d'initialiser les variables pour éviter les problèmes.
Le compilateur MT5 avale en silence ! Dans MT4, la compilation échoue.
Par curiosité, j'ai essayé une construction similaire en C++ (à partir de Visual Studio 2005) - le résultat pour x et y est le même.
Cet endroit n'est pas défini dans la norme c++ et il est explicitement indiqué qu'il dépend de l'implémentation. Il existe deux implémentations principales :
1. Effectuer une postincrémentation immédiatement après avoir utilisé une variable dans une expression. (comme nous l'avons fait).
2. Postincrément après le calcul de l'expression entière.
Je veux dire, où puis-je trouver les courtiers qui utilisent MT5 en temps réel ?