const_命名空間_輸入輸出

  1. C++中的新特性
    1.1 const
    1.1.1 被修飾的是有類型的常量.
    1.1.2 const char* : const在的左邊 : 指向的內容不可修改
    1.1.3 char
    const : const在*的右邊 : 指針自身的內容不可修改(指針不能指向其它地址)
    1.2 inline : 內聯函數.和宏+函數差不多,由編譯器自動優化.
    1.3 新的內存申請和釋放: new 和 delete
    1.3.1 new , new[] 和 delete , delete[]
    1.4 函數重載
    1.4.1 要求 : 函數名一樣,形參的個數,類型,順序有一個必須不一樣. 且不能通過返回值類型來區分重載.
    1.4.2 名稱粉碎機制
    1.4.3 防止名稱粉碎機制: extern"C"
    1.5 默認形參
    1.5.1 定義的規則 : 從右往左,不能有間隔.
    1.6 引用
    1.6.1 不占內存
    1.6.2 是變量的別名
    1.6.3 必須初始化
    1.6.4 不能再引用其它的變量.
    1.7 類型轉換
    1.7.1 const_cast : 去除常量屬性
    1.7.2 static_cast : 用于做隱式轉換的
    1.7.3 reinterpret_cast : 強制類型轉換.
  2. 輸入和輸出
    2.1 cout
    2.2 cin
    2.3 格式化輸入輸出的標志
    2.3.1 hex , dec , oct
    2.3.2 setw , setfill

const

include <cstdio> //#include <stdio.h>

include <cstdlib>

include <cstring>

struct MyStruct {
int nNum;
};

// const常量
// 1. 主要用于修飾形參
// 如果形參是指針, 應當優先考慮給指針參數加上const限定符
// 內聯函數:使用inline關鍵字
inline void fun(const MyStruct* pObj ) {
printf( "%d" , pObj );
}

void fun( const char* pStr ) {
printf( "%s" , pStr );
}

// 函數重載 : 運行存在同名的函數
void fun( ) {
printf( "無參的fun\n" );
}

// 取消名稱粉碎機制(c++獨有): extern"C"
extern"C"
{
int max( int l , int r ) {
return l > r ? l : r;
}
int min( int l , int r ) {
return l < r ? l : r;
}
}

// 默認形參
void fun( int n1 =0, int n2 =0, int n3 =0, int n4=0 ) {

}

int main( int argc , char** argv )
{
fun( 1,2);

// C++中的內存申請和釋放:
int* pNum = new int; // 申請了1個int型(4字節)內存

// 申請了1個int型(4字節)內存,并初始化為0
int* pNum1 = new int(0); 

// 釋放內存
delete pNum1; pNum1 = NULL;
delete pNum ; pNum = NULL;

// 申請一個結構體大小的內存空間
MyStruct* pStc = new MyStruct;
// 申請10個結構體大小的內存空間.
MyStruct* pStc1 = new MyStruct[10];

fun( );
fun( "hello\n" );
//fun( 10 );
fun( pStc );

delete[ ] pStc1; pStc1 = NULL;
delete pStc; pStc = NULL;

}

引用

include <stdio.h>

include <stdlib.h>

void swap( const char** p1 , const char** p2 ) {
const char* temp = *p1;
*p1 = *p2;
*p2 = temp;
}

void swap( const char& p1 , const char& p2 ) {
const char* temp = p1;
p1 = p2;
p2 = temp;
}

int main(int argc , char* argv[] ) {

const char* pLeft = "hello" ;
const char* pRight = "world";
swap( &pLeft , &pRight ); // 交換
swap( pLeft , pRight );

// 定義一個引用類型的變量
int nNum = 0;
int* pNum = &nNum;

// 定義了一個整型變量的引用
int& rNum = nNum;
// 定義了一個整型指針變量的引用
int*& rpNum = pNum;

int n2 = 100;
rNum = n2;

return 0;

}

類型轉換

include <stdio.h>

include <stdlib.h>

int main(int argc , char* argv[] ) {

const char* pcStr = "hello";
char* pStr = NULL;
pStr = (char*)pcStr;

// c++類型轉換格式:
//  類型轉換關鍵字<目標類型>(待轉換的表達式)
// const_cast : 專門用于取出const屬性的
// pStr <<== pcStr  X
// 
// 轉換前, pcStr是常量指針,指向的內容不可修改,指向"hello word"字符串
// 轉換后,pcStr性質不變
// 轉換前, pStr是一個指針 , 指向NULL
// 轉換后 , pStr是一個指針,指向"helloworld",指向的內容在語法上可以修改,
// 實際修改的時候程序會出錯.
pStr = const_cast<char*>( pcStr );//等價于pStr = (char*)pcStr;

char ch = (int)100; // char <<== int
// static用于將基本數據類型進行相互間轉換的
// 例如: int轉char, char轉int
ch = static_cast<char>( 100 );// 等價于ch=(int)100

pStr = "123456";
int* pNum = (int*)pStr;
// 重新解釋的類型轉換形式: 用于轉換不同類型的指針/引用
pNum = reinterpret_cast<int*>( pStr );

// 將int類型重新解釋成int*類型
// 轉換之后,int型的0x12345678變成int*類型的0x12345678
// pNum保存的就是地址0x12345678
pNum = reinterpret_cast<int*>( 0x12345678 );

// pNum 指向 0x12345678
// 轉換之后,pNum的值不變,nNum等于0x12345678
int nNum = reinterpret_cast<int>( pNum );

char ch;
int& rNum = reinterpret_cast<int&>( ch );

return 0;

}

命名空間 輸入輸出

include <iostream>

// 使用命名空間:std;
// 因為cin和cout都是保存在此命名空間中的.
using namespace std;

int fun( ) {
cout << "hello";
}

namespace MyNameSpace{
int fun( ) {
cout << "world";
}
int g_nNum;
};
// 聲明在此文件中使用MyNameSpace命名空間中的fun符號
// 使用之后, 再想使用此命名空間中的符號時,就無需在符號
// 前加 "MyNameSpace::"
//using MyNameSpace::fun;

//聲明使用命名空間中的所有符號
//using namespace MyNameSpace;

/*

  1. 使用cout將以下數據按格式輸出(注意有空格):
    printf(“OutPut : %c %d %lf %s\n” ,
    ‘c’ , 123 , 456.789 , “helloworld”);
    /
    int main(int argc , char
    argv[] ) {

    fun( );
    MyNameSpace::fun( );

    // C++編程追求 : 代碼盡可能地簡潔.
    cout << "hello " << "world" << endl/換行/;
    cout << 'c' << ' '
    << 123 << ' '
    << 456.789 << ' '
    << "hello15PB" << ' '
    << endl;
    // 輸出整型的不同形式
    printf( "%x" , 123456 );
    cout << 123456 << endl;

    // 輸出寬度的控制
    printf( "%3d" , 12 );
    cout << 12 << endl;

    // 輸出寬度與填充字符的控制
    printf( "%03d" , 12 );
    cout << 12 << endl;
    // cin的使用
    char szName[ 32 ] = { 0 };
    cout << "請輸入姓名";
    cin >> szName;
    cout << "請輸入年齡";
    int nAge = 0;
    cin >> nAge;

    cout << "請輸入身高和性別:";
    double dHeight;
    char chSex;
    //可在控制臺中輸入: 1.8 M
    cin >> dHeight >> chSex;
    cin >> hex >> nAge;

    return 0;
    }

?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 229,565評論 6 539
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 99,115評論 3 423
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 177,577評論 0 382
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,514評論 1 316
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 72,234評論 6 410
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 55,621評論 1 326
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,641評論 3 444
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,822評論 0 289
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 49,380評論 1 335
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 41,128評論 3 356
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,319評論 1 371
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,879評論 5 362
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,548評論 3 348
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,970評論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,229評論 1 291
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 52,048評論 3 397
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 48,285評論 2 376

推薦閱讀更多精彩內容