Форум программистов, компьютерный форум CyberForum.ru

Изменение значение переменной в одном выражении - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Где напартачено http://www.cyberforum.ru/cpp-beginners/thread604159.html
Добрый день. Помогите найти ошибки в коде. # include <Windows.h> # include <memory.h> BOOL InitApp (HINSTANCE); LRESULT CALLBACK WndProc (HWND, UINT, WPARAM, LPARAME); char szClassName="Windows AppClass"; //строка содержащая имя класса char szWindow ="Windows App";
C++ Считывание записей из файла (C++) Задание: Бинарный файл (текстовый файл) содержит записи, каждая из которых включает следующую информацию: строку1 символов, под которую выделено 25 байт; символ (для записи в текстовом файле под него занято 2 байта) строку2 символов, под которую выделено 5 байт; массив из 15 целых чисел в диапазоне от -99 до 99(для записи в текстовом файле под каждое такое число выделено по 3 байта). В... http://www.cyberforum.ru/cpp-beginners/thread604119.html
C++ Ассемблерная вставка
Здравствуйте! Помогите перевести следующий код на ассемблер, что в VS C++ вставить ассемблерную вставку. cout <<"Vvedite n\n"; cin >>n; while (x<n) {x++; a+=(1/x); } cout <<"a="<<a;
Производный класс ломаная линия C++
#include<iostream.h> #include<graphics.h> #include<conio.h> #define k 3 //point class point { public: int x,y,color;
C++ GDI+ неправильно рисует http://www.cyberforum.ru/cpp-beginners/thread604110.html
Здравствуйте! #include <gdiplus.h> using namespace Gdiplus; #pragma comment (lib,"Gdiplus.lib") case WM_PAINT: { ULONG_PTR gdiplusToken; hdc = BeginPaint(hwnd, &ps); GdiplusStartupInput gdiplusStartupInput;
C++ Вылетает ошибка При попытке выбрать меню в этой программке #include <iostream.h> #include <stdio.h> #include <conio.h> #include <stdlib.h> #include <string.h> FILE *fl; typedef struct { подробнее

Показать сообщение отдельно
Ксю92
 Аватар для Ксю92
73 / 7 / 0
Регистрация: 29.03.2011
Сообщений: 94
13.06.2012, 05:25     Изменение значение переменной в одном выражении
Доброго утра! Написала такую нехитрую программку, посмотреть что будет, если вычислить j++ * ++j/j-- * --j... и тут я в ступоре....((( почему такой результат??
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <iostream>
 
int main(int argc, char ** argv)
{
  int j, tmp;
 
  std::cout << "j-> "; std::cin >> j;
  tmp = j;
  std::cout << "j++ * ++j/j-- * --j  -> " << j++ * ++j/j-- * --j << "\n";
  j = tmp;
  std::cout << "tmp -> " << tmp << "\nj++ -> " << j++ << "\n++j -> " << ++j 
  << "\nj-- -> " << j-- << "\n--j -> " << --j << "\n";
 
  return 0;
}
вот что на выходе
xenia@glandule:~$ cd ~/Рабочий\ стол
xenia@glandule:~/Рабочий стол$ g++ t.cpp
xenia@glandule:~/Рабочий стол$ strip a.out
xenia@glandule:~/Рабочий стол$ ./a.out
j-> 5
j++ * ++j/j-- * --j -> 25
tmp -> 5
j++ -> 4
++j -> 4
j-- -> 4
--j -> 4
xenia@glandule:~/Рабочий стол$


точнее, меня интересует почему
tmp -> 5
j++ -> 4
++j -> 4
j-- -> 4
--j -> 4

а не
tmp -> 5
j++ -> 5
++j -> 6
j-- -> 6
--j -> 5

почему j++ * ++j/j-- * --j = 25 вроде поняла))
т.к. для j = 5 будет j++ = 5; ++j = 6 -> 5*6 = 30; j-- = 6 -> 30/6 = 5; --j = 5 -> 5*5 = 25

Заранее спасибки за объяснение))

Если это важно
ОС: Ubuntu 12.04 LTS 64-bit

xenia@glandule:~/Рабочий стол$ g++ --version
g++ (Ubuntu/Linaro 4.6.3-1ubuntu5) 4.6.3
Copyright (C) 2011 Free Software Foundation, Inc.
Это свободно распространяемое программное обеспечение. Условия копирования
приведены в исходных текстах. Без гарантии каких-либо качеств, включая
коммерческую ценность и применимость для каких-либо целей.

xenia@glandule:~/Рабочий стол$


Не по теме:

Более информативного названия темы, к сожалению, не придумала(((

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 07:11. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru