vla3d
@vla3d

Почему не меняются переменные в цикле (С++)?

Я забыл нюансы переменных в С++
Переменные изменяются, если их не считывать.
Если попытаться считать, то они перестают изменяться (проверил в Arduino и DevCpp)
Посмотрел в старых проектах - там нет такой проблемы, там спокойно обращался к глобальным переменным, считывал их и перезаписывал, потому никогда с такой проблемой не сталкивался и не задумывался
Единственная разница - там была другая среда (Atmel Studio) неизвестно с какими параметрами компилятора и С++.

Т.е. здесь в примере переменная А локальная, В глобальная, их читают в цикле, С тоже локальная, но её не читают в цикле

#include <iostream>


int* B = new(int);

int main(int argc, char** argv) {

	unsigned short A = 0;	
	
	*B = 0;

	unsigned short C = 0;

	while (1) {
	
		A += 1;
		
		*B = *B + 1;
		
		C += 1;
		
		if (A = 0) {};
	
		if (*B = 0) {};
	
//		if (C = 0) {};
	
	std::cout << A << "     " << *B  << "     " << C << std::endl;	
		
	}

}


Вывод в консоль
672fe4f665441884632950.png
  • Вопрос задан
  • 127 просмотров
Решения вопроса 1
@DrRen7
if (A = 0) {}; тут идет присвоение если надо сравнение то вероятно стоит if (A == 0) {}; )
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы