成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

第一部分C++基礎(chǔ)語法-創(chuàng)新互聯(lián)

1. 初始 1.1 常量的設(shè)置
  • #define:宏常量的設(shè)置
  • const:修飾變量
1.2 標(biāo)識符命名規(guī)則
  • 不是關(guān)鍵字
  • 下劃線、字母、數(shù)字組成,數(shù)字不能在開頭
  • 區(qū)分大小寫,見名知意
1.3 科學(xué)計數(shù)法
  • 3e2:表示3*10^2
  • 3e-2:表示3*0.1^2
1.4 轉(zhuǎn)義字符

\t:水平制表符,跳到下一個tab的位置,可用于多行輸出對齊

創(chuàng)新互聯(lián)建站-專業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性價比惠安網(wǎng)站開發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫,直接使用。一站式惠安網(wǎng)站制作公司更省心,省錢,快速模板網(wǎng)站建設(shè)找我們,業(yè)務(wù)覆蓋惠安地區(qū)。費用合理售后完善,十余年實體公司更值得信賴。1.5 隨機數(shù)的設(shè)置
  • int a = rand()%(n-m+1) + m:產(chǎn)生隨機數(shù)的范圍[m,n]
    rand 函數(shù)產(chǎn)生的隨機數(shù)是偽隨機數(shù),是根據(jù)一個數(shù)按照某個公式推算出來的,這個數(shù)我們稱之為“種子”,但是這個種子在系統(tǒng)啟動之后就是一個定值。要想每次產(chǎn)生的隨機數(shù)不一樣,那么,我們就要用到 srand 函數(shù)。
  • srand((unsigned int)time(NULL));
    種子,利用時間的不同產(chǎn)生不同的隨機數(shù)
1.6 跳轉(zhuǎn)語句
  • break:switch語句、跳出當(dāng)前循環(huán)、跳出內(nèi)層循環(huán)
  • continue:跳出本次循環(huán),進(jìn)入下一次循環(huán)
  • goto 標(biāo)志:跳轉(zhuǎn)到標(biāo)記的位置
2. 數(shù)據(jù)類型

可利用sizeof()統(tǒng)計數(shù)據(jù)類型所占大小

2.1 整型
數(shù)據(jù)類型長度大小
short2字節(jié)2^±15
int4字節(jié)2^±31
long4字節(jié)2^±31
long long8字節(jié)2^±63
2.2 實型
數(shù)據(jù)類型長度大小
float(后加f)4字節(jié)7位有效數(shù)字
double8字節(jié)15~16位有效數(shù)字
2.3 字符型

char a=‘x’ 、1字節(jié)、單引號、一個字符
實際存儲的為對應(yīng)的ASCII碼,‘a(chǎn)’=97、‘A’=65

2.4 字符串型
  • C風(fēng)格:char str[]=“hello”,雙引號
  • C++風(fēng)格:string str=”hello”,需添加頭文件#include
2.5 布爾類型

1個字節(jié),ture——真——非0,false——假——0

3. 運算符 3.1 算術(shù)運算符

只有整數(shù)能夠進(jìn)行取模運算
++a/–a:先加減、再運算
a++/a–:先運算、再加減

3.2 賦值/比較/邏輯運算符

+=,-=,*=,/=,%=
==,!=,>=,<=,>,<
!、&&、||

4. 數(shù)組 4.1 一維定義
//三種不同的定義方式
int a[10];
int a[10]={1,2...10};
int a[]={1,2...10};
4.2 一維數(shù)組名

獲取整個數(shù)組占用內(nèi)存空間的大小
可以通過數(shù)組名到數(shù)組首地址

int arr[3]={1,2,3};
    cout<<"整個數(shù)組的長度:"<
4.3 例
  • 逆置元素
    雙指針start、end,條件start>end
  • 冒泡
    第一層,個數(shù)-1;第二層,個數(shù)-輪數(shù)(i)-1
4.4 二維定義
//四種定義方式
int arr[2][3];
int arr[2][3]={1,2,3,4,5,6};
int arr[][3]={1,2,3,4,5,6};
int arr[2][3]=
{//推薦此方法,直觀,提高代碼的可讀性
    {1,2,3},
    {4,5,6}
}
4.5 二維數(shù)組名

獲取整個數(shù)組占用內(nèi)存空間的大小
可以通過數(shù)組名到數(shù)組首地址

cout<<"整個數(shù)組所占空間的大?。?<
5. 指針

無論什么類型,都占4個字節(jié)(在win32位系統(tǒng)中)

5.1 定義與使用
//定義指針
int a=10;
int *p;
p=&a;//為指針賦值(地址)

//使用指針
*p;//解指針,指向內(nèi)存中的數(shù)
5.2 空指針
  • 定義:指針變量指向內(nèi)存中編號為0的空間
  • 用途:初始化指針變量int *p = NULL
  • 注意:空指針指向的內(nèi)存是不能訪問的(0~255為系統(tǒng)占用內(nèi)存,不允許用戶訪問)
5.3 野指針
  • 指針變量指向非法的內(nèi)存空間
  • int *p = (int *)0x1100
5.4 const修飾指針
  • const修飾指針——常量指針
    const int *p = &a
    指針的指向可以改,指針指向的值不可以改
  • const修飾常量——指針常量
    int * const p = &a
    指針的指向不可以改,指針指向的值可以改
  • const既修飾指針,又修飾常量
    const int * const p= &a
    指針的指向和指向的值都不能改
5.5 指針與數(shù)組、函數(shù)
  • 與數(shù)組
    int *p = arr//指向數(shù)組首地址
  • 函數(shù)
    int a=10,b=20;
    swap(&a,&b);
    
    void swap(int *p1.int *p2){int temp = *p1;
        *p1=*p2;
        *p2=temp;
    }
    p++;//函數(shù)的運算
6. 結(jié)構(gòu)體 6.1 定義與使用

在定義時,不可以省略struct關(guān)鍵字;在使用時,可以省略struct關(guān)鍵字。

//定義結(jié)構(gòu)體(以下皆以此為例)
struct Student{string name;
 int age;
}; 

//創(chuàng)建結(jié)構(gòu)體變量,三種使用方法
struct Student s; s.name="000"; s.age=20;
struct Student s={"000",20}
在定義結(jié)構(gòu)體后創(chuàng)建變量,隨后賦初值
6.2 結(jié)構(gòu)體與數(shù)組、指針
  • 與數(shù)組
    //創(chuàng)建數(shù)組變量
    struct Student s[2]{{"000",20};
        {"001",21};
    };
    
    //使用
    s[i].name
  • 與指針
    //創(chuàng)建指針變量
    Student s={"000",21};
    Student *p = &s;
    
    //使用
    p->name
6.3 值傳遞與地址傳遞

不修改主函數(shù)中的數(shù)據(jù),使用值傳遞。修改主函數(shù)中的數(shù)據(jù),使用地址傳遞

struct Student s;
void printf1(struct Student p){p.name…………}//值傳遞
printf1(s);

void printf2(struct Student *p){p->name…………}//地址傳遞
printf2(&s);

使用指針進(jìn)行傳遞,可以減少內(nèi)存空間,而且不會復(fù)制新的副本。
而使用const修飾結(jié)構(gòu)體Student const *p能夠防止誤操作

7. 分文件 7.1 頭文件

在頭文件.h中,只有屬性與行為函數(shù)的聲明

//該文件名為test.h
#pragma once//防止頭文件重復(fù)包含
#includeusing namespace std;

class P{public:
    void setX(int x);
    int getX();

private:
    int p_x;
}
7.2 源文件

在源文件.cpp中,只有行為函數(shù)所有的實現(xiàn)

#include "test.h"http://包含頭文件名

//此時為全局函數(shù),需要加上作用域成為成員函數(shù)
void P::setX(int x){p_x=x;
}
int P::getX(){return p_x;
}
8.內(nèi)存分區(qū)模型

四個區(qū)域,代碼區(qū)、全局區(qū)、棧區(qū)、堆區(qū)
不同區(qū)域存放的數(shù)據(jù),賦予不同的生命周期,給我們更大的靈活編程
在程序編譯后,會生成exe可執(zhí)行程序
四個分區(qū)可分為程序執(zhí)行前(代碼區(qū)、全局區(qū))與程序執(zhí)行后(棧區(qū)、堆區(qū))

8.1 代碼區(qū)

存放函數(shù)體的二進(jìn)制代碼(CPU執(zhí)行的機器指令),由操作系統(tǒng)進(jìn)行管理

  • 共享的,對于頻繁執(zhí)行的程序,只需在內(nèi)存中有一份代碼即可
  • 只讀的,防止程序意外修改了其中的指令
8.2 全局區(qū)

存放全局變量、靜態(tài)變量、常量(字符串常量,const修飾全局變量)
該區(qū)域的數(shù)據(jù)在程序結(jié)束后由操作系統(tǒng)釋放

8.3 棧區(qū)

由編譯器自動分配釋放,存放函數(shù)的參數(shù)值、局部變量等
不要返回局部變量的地址

8.4 堆區(qū)

由程序員分配(new)和釋放(delete),若程序員不釋放,程序結(jié)束時由操作系統(tǒng)回收

8.5 new操作符

在堆區(qū)創(chuàng)建數(shù)據(jù),返回該數(shù)據(jù)對應(yīng)類型的指針

  • 基本語法

    int * a = new int(10);//創(chuàng)建
    delete a;//釋放
  • 開辟數(shù)組

    int * arr = new int [10];//創(chuàng)建
    delete[] arr;//釋放
9. 引用 9.1 基本規(guī)則
  • 作用:給變量起別名(用不同的變量名操作同一塊內(nèi)存空間)

  • 語法:數(shù)據(jù)類型 &別名 = 原名

  • 注意:引用必須要初始化;初始化后不能再更改

  • 本質(zhì):是一個指針常量(指向不可改,值可改)

    int a=10;
    int &ref = a;//自動轉(zhuǎn)換為`int * const ref = &a
    ref=20;//內(nèi)部發(fā)現(xiàn)ref是引用,自動轉(zhuǎn)換成*ref=20
9.2 引用傳遞

效果與地址傳遞相同,能夠修改實參,簡化了地址傳遞(指針的使用)

void swap(int &x,int &y){……;
}
//實際上為取別名,將a->x,b->y
swap(a,b);
9.3 返回值

引用可以作為函數(shù)的返回值存在

  • 不能返回局部變量的引用

    int& test(){int a=100;
        return a;
    }
  • 函數(shù)調(diào)用能夠作為左值使用(如果函數(shù)做左值,則必須返回引用)

    int& test(){static int a=100;
        return a;
    }
    test()=1000;
9.4 常量引用

防止誤操作,修改實參

int &ref=10;//錯誤,引用本身需要一個合法的內(nèi)存空間
const int& ref =10;//正確,編譯器自動優(yōu)化代碼
ref = 100;//錯誤,加入const后不可以修改變量


void show(const int& x){x=10;//不能夠改變
}
10.函數(shù)高級 10.1 默認(rèn)參數(shù)

int fun(int a=10,int b=20)形參中可以有默認(rèn)參數(shù)

  • 若有傳入數(shù)據(jù),則用傳入的數(shù)據(jù);否則用默認(rèn)值
  • 若某位置有參數(shù),從這位置往后必須有默認(rèn)值
  • 函數(shù)的聲明中有默認(rèn)值,函數(shù)的實現(xiàn)就不能有默認(rèn)值
10.2 占位參數(shù)

void fun(int),只有數(shù)據(jù)類型

  • 調(diào)用時需要有參數(shù)調(diào)補該位置,可以有默認(rèn)參數(shù)
10.3 函數(shù)重載

函數(shù)名相同,提高復(fù)用性

  • 條件
    • 同一個作用域
    • 函數(shù)名相同
    • 參數(shù)類型不同 or 個數(shù)不同 or 順序不同(返回值類型不同不是條件)
  • 注意事項
    • 引用作為重載的條件

      //不同情況
      void fun(int &a){}  int a=10;fun(a);
      void fun(const int &a){}   fun(10);
    • 重載碰到默認(rèn)參數(shù)
      會出現(xiàn)二義性

      void fun(int a,int b=10){}
      void fun(int a){};
      fun(10);//此時兩個都可以調(diào)用,分不清
11.文件操作 11.1 前言
  • 程序運行時產(chǎn)生的數(shù)據(jù)屬于臨時數(shù)據(jù),程序一旦運行結(jié)束都會被釋放,而通過文件可以將數(shù)據(jù)持久化
  • 對文件的操作需包含頭文件
  • 文件類型
    • 文本文件:以文本的ASCII碼的形式存儲
    • 二進(jìn)制文件:以文本的二進(jìn)制形式存儲
  • 操作文件三大類
    • ofstream:寫操作
    • ifstream:讀操作
    • fstream:讀寫操作
11.2 文本文件
  • 寫文件

    • 包含頭文件:#include
    • 創(chuàng)建流對象:ofstream ofs;
    • 打開文件:ofs.open("文件路徑",打開方式);
      沒寫絕對路徑的話,生成在當(dāng)前目錄
    • 寫數(shù)據(jù):ofs<<"寫入的數(shù)據(jù)";
    • 關(guān)閉文件:ofs.close();
  • 文件打開方式
    可以配合使用,利于|操作符

    打開方式解釋
    ios::in為讀文件而打開文件
    ios::out為寫文件而打開文件
    ios::ate初始位置,文件尾
    ios::app追加方式寫文件
    ios::trunc如果文件存在先刪除,再創(chuàng)建
    ios::binary二進(jìn)制方式
  • 讀文件

    • 包含頭文件:#include

    • 創(chuàng)建流對象:ifstream ifs;

    • 打開文件并判斷是否成功打開:

      ifs.open("文件路徑",打開方式);
      if(!ifs.is_open(){cout<<"文件打開失敗"<

      沒寫絕對路徑的話,生成在當(dāng)前目錄

    • 讀數(shù)據(jù):四種方式

    • 關(guān)閉文件:ifs.close();

  • 讀數(shù)據(jù)的四種方式

    • 第一種

      char buf[1024] = {0};
      while(ifs>>buf){cout<
    • 第二種

      char buf[1024] = {0};
      while(ifs.getline(buf,sizeof(buf))){cout<
    • 第三種

      string buf;
      while(getline(ifs.buf)){cout<
    • 第四種(不推薦)

      char c;
      while( (c=ifs.get())!= EOF ){//EOF 表示end of file
          cout《《
      }
11.3 二進(jìn)制的文本文件
  • 寫文件

    • 包含頭文件:#include

    • 創(chuàng)建流對象:ofstream ofs("文件路徑",打開方式);

    • 打開文件(可省略):ofs.open("文件路徑",打開方式);

    • 寫文件

      //函數(shù)原型:ofstream& write(char *buffer,int len);
      Person p={"張三",18};
      ofs.write( (const char *)&p,sizeof(Person) );
    • 關(guān)閉文件
      ofs.close();

  • 讀文件

    • 包含頭文件:#include

    • 創(chuàng)建流對象:ifstream ifs;

    • 打開文件并判斷是否成功打開

      ifs.open("a.txt",ios::in | ios::binary);
      if(!ifs.is_open()){cout<<"文件打開失敗"<
    • 讀文件

      Person p;
      ifs.read( (char *)&p,sizeof(Person) );
    • 關(guān)閉文件:ifs.close;

你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機房具備T級流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級服務(wù)器適合批量采購,新人活動首月15元起,快前往官網(wǎng)查看詳情吧

名稱欄目:第一部分C++基礎(chǔ)語法-創(chuàng)新互聯(lián)
URL鏈接:http://jinyejixie.com/article30/psjso.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站改版、ChatGPT搜索引擎優(yōu)化、定制開發(fā)、商城網(wǎng)站、云服務(wù)器

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

越西县| 盐山县| 贡嘎县| 工布江达县| 社旗县| 潜江市| 威海市| 绍兴市| 彭水| 库尔勒市| 黄骅市| 阿坝县| 道真| 武冈市| 汉源县| 石台县| 天水市| 东方市| 循化| 北安市| 临夏市| 怀仁县| 尉氏县| 万山特区| 垣曲县| 太仆寺旗| 乳山市| 武陟县| 分宜县| 夏邑县| 延寿县| 南康市| 桐乡市| 武清区| 灵石县| 商洛市| 贵阳市| 舞阳县| 黔西| 隆安县| 枣强县|