2010
10-17

C++ lekcja 2 – zmienne

W tej lekcji opisze czym są zmienne.

Numeryczna zmienna typu int

Na początku opowiem tylko o zmiennej typu int. Ta zmienna jest liczbą. I ta liczba może zostac zmieniona podczas pracy programu. Dla przykładu jeśli będziemy tworzyc gre komputerową to możemy mieć zmienna ilosc_zyc. Powiedzymy że na początku ta zmienna ma wartość 3, i podczas gry może się zmienić (gracz przegrywa lub zdobywa nowe życia). program:
  1. int ilosc_zyc= 3;
  2. cout<<"ilosc zyc wynosi "<<number_of_lifes<<endl;
  3.  
wyświetli:
  1. ilosc zyc wynosi 3
A teraz spróbujmy zmienić tą zmienną program:
  1. int ilosc_zyc= 3;
  2. cout<<"ilosc zyc wynosi "<<ilosc_zyc<<endl;
  3. ilosc_zyc= 5;
  4. cout<<"ilosc zyc wynosi "<<ilosc_zyc<<endl;
  5.  
wyświetli:
  1. ilosc zyc wynosi 3
  2. ilosc zyc wynosi 5
OK, teraz spróbojmy wziąść kilka zmiennych i wykonać na nich jakieś operacje arytmetyczne. program:
  1. int a=1;
  2. int b=2;
  3. int c=3;
  4. cout<<"c wynosi "<<c<<endl;
  5. c= a+b;
  6. cout<<"c wynosi "<<c<<endl;
  7. c= 2*b;
  8. cout<<"c wynosi "<<c<<endl;
  9.  
out:
  1. c wynosi 3
  2. c wynosi 3
  3. c wynosi 4
  4.  
Możesz nawet urzyć zmiennej do obliczenia jej nowej wartości. W matematyce nie miało by to sensu, ale tutaj ma. program:
  1. int a=2;
  2. cout<<"a wynosi "<<a<<endl;
  3. a= a+1;
  4. cout<<"a wynosi "<<a<<endl;
  5.  
out:
  1. a wynosi 2
  2. a wynosi 3

Inney typy zmiennych

Oto lista standardowych typów zmiennych w C++:
rozmiar min max opis
bool 1B 0 1 Prawda lub fałsz
char 1B -128 127 Znak, ale może byś równierz interpretowana jako liczba
int 4B -2147483648 2147483647 Liczba całkowita
float 4B - - Liczba wymierna.
double 8B - - Liczba wymierna.
char to pojedynczy znak, i jeśli chcesz nadac mu wartość to musisz umieścić ten znak pomiędzy ' ' (a nie " ").
  1. char c= 'c';
Działający przykład:
  1. #include <iostream>
  2. #include <cstdlib>
  3. using namespace std;
  4.  
  5. int main()
  6. {
  7. bool b= 0;
  8. int i= 123;
  9. float f=3.14;
  10. double d= 3.14159265358979323846;
  11. cout<<"b ma wartosc logiczna "<<b<<endl;
  12. cout<<"i wynosi "<<i<<endl;
  13. cout<<"f w przyblirzeniu wynosi "<<f<<endl;
  14. cout<<"d w przyblirzeniu wynosi "<<d<<endl;
  15. return 0;
  16. }
  17.  
output:
  1. b ma wartosc logiczna 0
  2. i wynosi 123
  3. f w przyblirzeniu wynosi 3.14
  4. d w przyblirzeniu wynosi 3.14159
  5.  

3 Komentarze.

  1. Boldy says:

    Hola, No estб seguro de que esto es verdad:), pero gracias a un cargo.

    Boldy

    • Emma says:

      ANSI ISO/IEC 14882:2003(E)12.3.1 Conversion by conturtcsorA conturtcsor declared without the function-specifier explicit that can be called with a single parameter specifies a conversion from the type of its first parameter to the type of its class. Such a conturtcsor is called a converting conturtcsor. class X {// …public:X(int);X(const char*, int =0);};An explicit conturtcsor constructs objects just like non-explicit conturtcsors, but does so only where the direct-initialization syntax (8.5) or where casts (5.2.9, 5.4) are explicitly used. A default conturtcsor may be an explicit conturtcsor; such a conturtcsor will be used to perform default-initialization or value initialization(8.5).и далее по тексту. Это ответ на вопрос “А по какому праву?”. По тому какой синтаксис был использован в выражении (sss xxx = 7;) компилятор определяет какой конструктор должен быть вызван. Про неявное преобразование типов рассказывать думаю будет лишним.

    • Gavin says:

      costenxpr が type specifier であるとは言っているわけではありません むしろ逆のことを言っているつもりです costenxpr は型に影響しないことにより 関数に対する costenxpr 修飾が不可能となる関数ポインタ経由の関数呼び出しは costenxpr function に含めることはできない という指摘をしています costenxpr int (*table[])(void) における costenxpr は table の宣言に影響するのであって それが自動的にポインタの指す先に波及したりはしません static int (*table[])(void) としても table が static になるだけで ポインタの指す関数に static が波及するわけではないのと同様です 関数が costenxpr function となる costenxpr function から呼び出せる関数となる 条件は 7.1.5 p2 にしか見当たりません

Zostaw odpowiedź

  ( Ctrl+Enter )