c++ 入門 之 hello world 和基本語法


1,linux系統上如何跑c++程序

    1,vim一個hello.cpp,內容如下:

#include <iostream>
using namespace std;
int main()
{
    cout << "Hello World!" << endl;
    return 0;
}

    2,g++編譯剛剛的程序:g++  源文件名  -o  可執行的腳本名,比如我執行的就是:g++ hello.cpp -o hello 

    3,在當前文件夾執行: ./hello     ps:並不需要向python一樣指定編譯器,大約是因為比較底層吧

2,linux系統上自帶GUN的c++編譯器,可以通過g++ -v檢查是否安裝了gcc,windows系統上推薦使用visual studio,方便調試,安裝教程

3,基本語法

#include <iostream>    //頭文件,頭文件中包含了程序中必須的或者有用的信息
using namespace std;    //使用命名空間
 
// main() 是程序開始執行的地方
 
int main()
{
   cout << "Hello World"; // 輸出 Hello World
   return 0;    //終止main函數,並且向調用進程返回0
}
//c++用分號表示一行程序的結束,用大括號表示一個語句塊,區分大小寫,變量名用英文或者下划線加上數字表示,注釋可用://或者:/*我是多行注釋*/

三字符組:三字符組是啥?就是用??=表示#,用??/表示\,用??(表示[,

內置數據類型:

類型 關鍵字
布爾型 bool
字符型 char
整型 int
浮點型 float
雙浮點型 double
無類型 void
寬字符型

wchar_t

數據類型的修飾:

類型 范圍
char 1 個字節 -128 到 127 或者 0 到 255
unsigned char 1 個字節 0 到 255
signed char 1 個字節 -128 到 127
int 4 個字節 -2147483648 到 2147483647
unsigned int 4 個字節 0 到 4294967295
signed int 4 個字節 -2147483648 到 2147483647
short int 2 個字節 -32768 到 32767
unsigned short int 2 個字節 0 到 65,535
signed short int 2 個字節 -32768 到 32767
long int 8 個字節 -9,223,372,036,854,775,808 到 9,223,372,036,854,775,807
signed long int 8 個字節 -9,223,372,036,854,775,808 到 9,223,372,036,854,775,807
unsigned long int 8 個字節 0 to 18,446,744,073,709,551,615
float 4 個字節 +/- 3.4e +/- 38 (~7 個數字)
double 8 個字節 +/- 1.7e +/- 308 (~15 個數字)
long double 16 個字節 +/- 1.7e +/- 308 (~15 個數字)
wchar_t 2 或 4 個字節 1 個寬字符

在這里主要說一下修飾符:

    1,signed和unsigned主要區別是,signed是支持正負的,就拿int來說,默認一個int是4個字節,用4*8=32位來表示數據,其中第一位是表示正負號的,所以這個int的大小是正負2××31(正數需要減一),而unsigned int只表示正整數,所以第一位不再表示符合,所以取值范圍是0-2××32,對於char類型,同理,但是稍有不同,目前不能理解。

    2,long和short,默認的int用4字節表示,short int用兩字節表示,所以是2×8=16位,大小是正負2××16(正整數需要減一),signed和unsigned同理。而long int用8個字節表示,需要8×8=16位,大小是正負2××64,天啦擼,計算機的計算能力真不是蓋得。

跑一下自己電腦里的數據類型:sizeof()返回各種數據類型的大小,單位是字節;endl將會在行后插入換行符;<<用於向屏幕傳遞多個值(實踐證明,就算是傳遞一個值也需要這個,,,)

typedef沒明白是啥意思,估計就是給原有的數據類型換個名字,內容一點也沒有換。

枚舉類型的意思就是,定義某個變量只能是某幾個值中的一個,例如

enum color { red, green, blue } c;
c = blue;
//定義一個枚舉名為color,c的類型就是color,也就是說c只能是red,green和blue中的一個,,然后c=賦值為bule。用下標也行,沒有特殊標識就是0,1,2

看我的實例:

#include <iostream>
using namespace std;
int main()
{
    enum color { red, green, blue } c;    //定義枚舉
    c = red;
    cout << "i am c"<< c <<endl;    //打出來瞅瞅
    return 0;
}

//結果返回的竟然是'i am c0',好驚訝,如果c=blue,那就返回‘i am c2’,感覺莫名其妙

4,變量類型

1,bool型:儲存true或者false

2,char:1個字節(B

3,int整數

4,float:4B,32位(從31到0,反序),31是符號,往前是8位指數和23位小數

5,double,雙精度浮點值:8B,(63到0反序),63位是符號,11位是指數,52位是小數

6,void表示類型缺失

7,wchar_t寬字符類型,大約是漢字等編碼過的字符

聲明變量:

int    i, j, k;
char   c, ch;
float  f, salary;
double d;

extern int d = 3, f = 5;    //d 和 f 的聲明 
int d = 3, f = 5;           // 定義並初始化 d 和 f
byte z = 22;                // 定義並初始化 z
char x = 'x';               // 變量 x 的值為 'x'
//注意extern:它是聲明而不是定義。一個 c++ 程序可以包含多個文件,在一個文件中已定義的變量,如果要在另一個文件中調用,就要先聲明一下變量,此時用 extern 這個關鍵字來聲明。(注意:在一個程序中,變量只能被定義一次,但可以多次聲明)

變量聲明,定義和初始化:

#include <iostream>
using namespace std;
 
// 變量聲明
extern int a, b;
extern int c;
extern float f;
  
int main ()
{
  // 變量定義,類似於js,可以先聲明后初始化
  int a, b;
  int c;
  float f;
 
  // 實際初始化
  a = 10;
  b = 20;
  c = a + b;
 
  cout << c << endl ;    //30
 
  f = 70.0/3.0;
  cout << f << endl ;    //23.3333
 
  return 0;
}

聲明不止針對變量,對待函數同樣有效:

// 函數聲明
int func();
 
int main()
{
    // 函數調用
    int i = func();
}
 
// 函數定義
 int func()
{
    return 0;
}

5,變量作用域:

全局和局部變量:總體和別的編程語言一樣。注意有個不同點。

#include <iostream>
using namespace std;
 
// 全局變量聲明,打印出來將會是0
int g;    
int main ()
{
  // 局部變量聲明
  int a, b;
 
  // 實際初始化
  a = 10;
  b = 20;
  g = a + b;
  cout << g;
  return 0;
}

定義全局變量時候,系統會為下面的數據類型設置默認值:

int:0

char:‘\0’

float:0

double:0

pointer:NULL

6,常量:

又叫字面量,常量就像是常規的變量,只不過常量的值在定義后不能進行修改。

整數常量:整數常量可以是十進制、八進制或十六進制的常量。前綴指定基數:0x 或 0X 表示十六進制,0 表示八進制,不帶前綴則默認表示十進制。整數常量后面可以帶指示符號,U 表示無符號整數(unsigned),L 表示長整數(long)。后綴可以是大寫,也可以是小寫,U 和 L 的順序任意。

實例:

85         // 十進制
0213       // 八進制 
0x4b       // 十六進制 
30         // 整數 
30u        // 無符號整數 
30l        // 長整數 
30ul       // 無符號長整數

浮點常量:浮點常量由整數部分、小數點、小數部分和指數部分組成。帶符號的指數是用 e 或 E 引入的。

實例:

3.14159       // 合法的 
314159E-5L    // 合法的 
510E          // 非法的:不完整的指數
 210f          // 非法的:沒有小數或指數
.e55          // 非法的:缺少整數或分數

布爾常量:true或者false

字符常量(就一個):字符常量是括在單(單引號哦)引號中。如果常量以 L(僅當大寫時)開頭,則表示它是一個寬字符常量(例如 L'x'),此時它必須存儲在 wchar_t類型的變量中。否則,它就是一個窄字符常量(例如 'x'),此時它可以存儲在 char 類型的簡單變量中。

字符常量可以是一個普通的字符(例如 'x')、一個轉義序列(例如 '\t'),或一個通用的字符(例如 '\u02C0')。

在 C++ 中,有一些特定的字符,當它們前面有反斜杠時,它們就具有特殊的含義,被用來表示如換行符(\n)或制表符(\t)等。下表列出了一些這樣的轉義序列碼:

\\ \ 字符
\' ' 字符
\" " 字符
\? ? 字符
\a 警報鈴聲
\b 退格鍵
\f 換頁符
\n 換行符
\r 回車
\t 水平制表符
\v 垂直制表符
\ooo 一到三位的八進制數
\xhh . . . 一個或多個數字的十六進制數

字符串常量(可以是好多個):字符串字面值或常量是括在雙引號 "" 中的。一個字符串包含類似於字符常量的字符:普通的字符、轉義序列和通用的字符。

如何定義常量:

#include <iostream>
using namespace std;
 
#define LENGTH 10   //定義常量LENGTH 為10,據說是宏定義,只要編譯器碰到LENGTH,那就自動替換為10用,
#define WIDTH  5
#define NEWLINE '\n'
 
int main()
{
 
   int area;  
   
   area = LENGTH * WIDTH;  //10*5=50
   cout << area;    //按理說應該輸出為50
   cout << NEWLINE;    //換行符,輸出了也看不出來
   return 0;
}

const用來聲明指定類型的常量:言外之意就是define沒有指定類型。

#include <iostream>
using namespace std;
 
int main()
{
   const int  LENGTH = 10;
   const int  WIDTH  = 5;
   const char NEWLINE = '\n';
   int area;  
   
   area = LENGTH * WIDTH;
   cout << area;
   cout << NEWLINE;
   return 0;
}

注意,常量一般都用大寫字母來寫。

7,修飾符類型(前面學過了,再鞏固一下吧)

1,數據類型修飾符:

signed int:有符號整數型,也就是說第一位表示正負符號。unsigned int:無符號整數,沒有符號,所以可以表示的正數范圍比較大

比如:

#include <iostream>
using namespace std;
 
int main()
{
   short int i;           // 有符號短整數
   short unsigned int j;  // 無符號短整數
 
   j = 50000;
 
   i = j;
   cout << i << " " << j;
 
   return 0;
}
/*無符號短整數 50,000 的位模式被解釋為有符號短整數 -15,536。*/

其他限定符:

const:對象再程序執行期間不能被修改改變。

volatile:告訴程序不優化變量

restrict:由 restrict 修飾的指針是唯一一種訪問它所指向的對象的方式。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM