<del id="d4fwx"><form id="d4fwx"></form></del>
      <del id="d4fwx"><form id="d4fwx"></form></del><del id="d4fwx"><form id="d4fwx"></form></del>

            <code id="d4fwx"><abbr id="d4fwx"></abbr></code>
          • 第一部分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ū)。費(fèi)用合理售后完善,十余年實體公司更值得信賴。1.5 隨機(jī)數(shù)的設(shè)置
            • int a = rand()%(n-m+1) + m:產(chǎn)生隨機(jī)數(shù)的范圍[m,n]
              rand 函數(shù)產(chǎn)生的隨機(jī)數(shù)是偽隨機(jī)數(shù),是根據(jù)一個數(shù)按照某個公式推算出來的,這個數(shù)我們稱之為“種子”,但是這個種子在系統(tǒng)啟動之后就是一個定值。要想每次產(chǎn)生的隨機(jī)數(shù)不一樣,那么,我們就要用到 srand 函數(shù)。
            • srand((unsigned int)time(NULL));
              種子,利用時間的不同產(chǎn)生不同的隨機(jī)數(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. 運(yùn)算符 3.1 算術(shù)運(yùn)算符

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

            3.2 賦值/比較/邏輯運(yùn)算符

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

            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ù)的運(yùn)算
            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í)行的機(jī)器指令),由操作系統(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)補(bǔ)該位置,可以有默認(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 前言
            • 程序運(yùn)行時產(chǎn)生的數(shù)據(jù)屬于臨時數(shù)據(jù),程序一旦運(yùn)行結(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海外機(jī)房具備T級流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級服務(wù)器適合批量采購,新人活動首月15元起,快前往官網(wǎng)查看詳情吧

            名稱欄目:第一部分C++基礎(chǔ)語法-創(chuàng)新互聯(lián)
            URL鏈接:http://www.jbt999.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)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:[email protected]。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

              <del id="d4fwx"><form id="d4fwx"></form></del>
              <del id="d4fwx"><form id="d4fwx"></form></del>
              <del id="d4fwx"><form id="d4fwx"></form></del>

                        <code id="d4fwx"><abbr id="d4fwx"></abbr></code>
                      • 97电影院肏逼 | 天天日天天干天天色 | 中文字幕精品一区 | 大香蕉国产精品 | 五月花视频 |