程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> C++學習,學習

C++學習,學習

編輯:C++入門知識

C++學習,學習


機器語言==》面向過程的==》面向對象的。

重載:函數名相同,參數不一樣(類型,個數);

重載不是面向對象的特征,只是簡化編程互操作的一種方案;

注意:對函數(方法)重載要謹慎、注意操作符重載和覆蓋;

復雜數據類型:

數組、指針、結構、類

數組:把同類型的值存儲在同一變量名下;仍需要被聲明為某一特定類型:float,char, int————

注意:c語言中我們一般把字符串存儲在一個字符數組中,但C++中我們一般使用一個對象string。

對齊問題:32位系統是四字節,64位是8字節。有內存對齊、文件對齊。

指針是一個用來存放地址的變量 type*pointerName;故可以把地址放在指針變量裡。

星號的用途:第一種是用於創建指針,第二種是對指針進行解引用。

C++支持無類型指針void * vPpinter;解引用之前必須先轉換為一種適當的數據類型。

指針和數組:

數組名是數組首地址。

思考:

#include <iostream>

using namespace std;

int main()
{
    const unsigned short ITEM = 5;
    
    int intArray[ITEM] = {1,2,3,4,5};
    char charArray[ITEM] = {'a','s','d','f','g'};
    
    int *intPtr = intArray;
    char *charPtr = charArray;
    
    cout << "整形" << endl; 
    for( int i = 0; i < ITEM; i++)
    {
        cout << *intPtr << " at " << reinterpret_cast<unsigned long>(intPtr) << endl;
        intPtr++;
    }

                  for( int i = 0; i < ITEM; i++)
    {
        cout << *intPtr << " at " << intPtr << endl;
        intPtr++;
    }

    
    cout<< "字符型" << endl; 
    for( int i = 0; i < ITEM; i++)
    {
        cout << *charPtr << " at " << reinterpret_cast<unsigned long>(charPtr) << endl;
        charPtr++;
    }    
    
                  for( int i = 0; i < ITEM; i++)
    {
        cout << *charPtr << " at " << charPtr << endl;
        charPtr++;
    }

    return 0;
}

字符和整形為啥輸出結果有差異:reinterpret_cast<unsigned long>()帶來的影響

 ?

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved