国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

【是C++,不是C艸】 第一個C++程序 | 命名空間 | 輸入輸出

這篇具有很好參考價值的文章主要介紹了【是C++,不是C艸】 第一個C++程序 | 命名空間 | 輸入輸出。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報違法"按鈕提交疑問。

?????歡迎來到 Claffic 的博客?????

? ??專欄:《是C++,不是C艸》??

前言:?

在認(rèn)識了C++的來歷之后,我們就要開始正式學(xué)習(xí)C++了,系好安全帶,準(zhǔn)備出發(fā)!

注:

你最好是學(xué)完了C語言,并學(xué)過一些初階的數(shù)據(jù)結(jié)構(gòu)。


Part1:給C++打個招呼

1.Hello,cpp!

從創(chuàng)建項目開始,添加項的時候終于不用刪pp了??

【是C++,不是C艸】 第一個C++程序 | 命名空間 | 輸入輸出

我上來就是?。。∫粋€左正蹬...,額不,一個C++程序:

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

唱跳rap籃球 + F5:

【是C++,不是C艸】 第一個C++程序 | 命名空間 | 輸入輸出

你乍一看這代碼,好像熟悉又陌生... ...

說熟悉吧,int main()? return 0;?是明白的,跟C語言的一模一樣;

說陌生,<iostream>是啥?using... ? 還有 cout , endl,不認(rèn)識。

開始懷念C語言了:

#include<stdio.h>
int main()
{
	printf("Hello,cpp!\n");
	return 0;
}

輸出相同:?

【是C++,不是C艸】 第一個C++程序 | 命名空間 | 輸入輸出

既然結(jié)果相同,那兩種寫法每個語句之間是不是有一些微妙的關(guān)系?
欸,繼續(xù)向下看,你會找到答案。

2.關(guān)鍵字

C++總計63個關(guān)鍵字,C語言32個關(guān)鍵字

下面是C++關(guān)鍵字的匯總表,你大體見見模樣即可:

【是C++,不是C艸】 第一個C++程序 | 命名空間 | 輸入輸出

C++的關(guān)鍵字的豐富感有沒有?

Part2:命名空間(namespace)

1.為何而來?

不知道大家在C語言中有沒有這樣的經(jīng)歷:
不小心把自己的變量名設(shè)置成C語言的關(guān)鍵字/函數(shù)名了,導(dǎo)致命名沖突;?

上一個例子惡心你??:

#include <stdio.h>
#include <stdlib.h>

int rand = 114514;
int main()
{
	printf("%d\n", rand); // stdlib.h 里的 rand 還是 全局中定義的 rand ?
	return 0;
}

報錯:?

【是C++,不是C艸】 第一個C++程序 | 命名空間 | 輸入輸出

命名空間基本上就是為了解決這個問題的:

使用命名空間的目的是對標(biāo)識符的名稱進(jìn)行本地化 ,以 避免命名沖突或名字 污染。

知道 namespace 對C語言的改善作用了吧。

2.命名空間的定義

一圖就懂:

【是C++,不是C艸】 第一個C++程序 | 命名空間 | 輸入輸出

那命名空間的成員可以是什么?

可以定義變量 / 函數(shù) / 類型

如:?

namespace Claffic
{
	// 定義變量
	int x = 10;
	// 定義函數(shù)
	int Add(int left, int right)
	{
		return left + right;
	}
	// 定義結(jié)構(gòu)體類型
	struct Node
	{
		int val;
		struct Node* next;
	};
}

你以為到這就結(jié)束了?

不,命名空間還可以嵌套

// 命名空間可以嵌套
// Test.cpp
namespace N1
{
	int a;
	int b;
	int Add(int x, int y)
	{
		return x + y;
	}
	namespace N2 // 被N1嵌套在內(nèi)
	{
		int c;
		int d;
		int Sub(int x, int y)
		{
			return x - y;
		}
	}
}

而且而且,

同一個工程中允許存在多個相同名稱的命名空間,編譯器最后會合成同一個命名空間中

// Test.h
namespace N1
{
	int Mul(int x, int y)
	{
		return x * y;
	}
}

ps:一個工程中的test.h和上面test.cpp中兩個N1會被合并成一個?

3.命名空間的使用

這里定義一個命名空間:

namespace Claffic
{
	int a = 0;
	int b = 1;
	int Add(int x, int y)
	{
		return x + y;
	}
	struct Node
	{
		int val;
		struct Node* next;
	};
}

如果我們想全局變量那樣直接使用,會出現(xiàn)錯誤:

【是C++,不是C艸】 第一個C++程序 | 命名空間 | 輸入輸出

打開方式不對... ...?

命名空間的使用呢,有三種方式:

??加命名空間名稱及作用域限定符

命名空間名稱 :: 要使用成員
int main()
{
	printf("%d\n", Claffic::a);
	return 0;
}

??使用using將命名空間中某個成員引入 ?

using 命名空間名稱 :: 要使用成員
using Claffic::a;
int main()
{
	printf("%d\n", a);
	return 0;
}
? 使用using namespace 命名空間名稱引入?
using namespace 命名空間名稱
using namespace Claffic;
int main()
{
	printf("%d\n", a);
	printf("%d\n", b);
	Add(2, 3);
	return 0;
}

這種用法可以使用命名空間中的所有成員;

看到這里,是不是覺得似曾相識?

在跟C++打招呼的時候,開頭就用了這種命名空間使用,std 就是標(biāo)準(zhǔn)庫中的一個命名空間,

包含了相應(yīng)的頭文件并且引用了它,就可以使用其中的 cout endl,

不賣關(guān)子了,直接告訴你吧,endl 就相當(dāng)于 \n ,換行符;

至于 cout 嘛,嘿嘿,下面講的就是它:

Part3:C++輸入和輸出

1.標(biāo)準(zhǔn)輸入輸出

cout         // 標(biāo)準(zhǔn)輸出
cin          // 標(biāo)準(zhǔn)輸入
使用上述兩個東東時,必須 包含? <iostream>? 頭文件 以及按命名空間使用方法使用std;
endl 是特殊的 C++ 符號,表示換行輸出,他們都包含在包含? <iostream>? 頭文件中。

有了這些還不夠,還有兩個像大于/小于號的東西:

<<? 是流插入運(yùn)算符, >>? 是流提取運(yùn)算符:
int a = 0;
cin >> a;
cout << "abcdef" << a << endl;

二者是這樣配合使用的。

與C語言相比,是不是輸入輸出更加方便了?

因?yàn)樗恍枰?/span> printf/scanf 輸入輸出時那樣,需要手動控制格式;
C++ 的輸入輸出可以自動識別變量類型。

?

2.std 命名空間的使用慣例

std C++ 標(biāo)準(zhǔn)庫的命名空間,如何展開 std 使用更合理呢?

using namespace std 就是一種使用方式,

這種使用方式就很方便,適合日常的練習(xí)。

但是在項目開發(fā)中,代碼多,規(guī)模大,就容易出現(xiàn)命名沖突的問題,

所以在這種情況下,建議指定使用的命名空間

using std::cin;
using std::cout;

Part4:溯源

“溯源”大題小用??????

其實(shí)就是再看篇頭那段代碼:

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

到這里,我相信你已經(jīng)能夠解讀這一段代碼了:

#include<iostream>     // 引用頭文件
using namespace std;   // 展開std命名空間
// 二者配合使用,可用cout,endl關(guān)鍵字
cout << "Hello,cpp!";
// 標(biāo)準(zhǔn)輸出,配合 << (流提取運(yùn)算符)使用
endl 相當(dāng)于C語言中的 '\n' 換行符

總結(jié):?

這期博客,以 Hello cpp 起,Hello cpp 收,帶大家寫下了第一個C++程序,并向大家解釋了命名空間和輸入輸出等重要知識內(nèi)容,你學(xué)的怎么樣呢?

碼文不易?

如果你覺得這篇文章還不錯并且對你有幫助,不妨支持一波哦????????文章來源地址http://www.zghlxwxcb.cn/news/detail-442454.html

到了這里,關(guān)于【是C++,不是C艸】 第一個C++程序 | 命名空間 | 輸入輸出的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 【C++初階】C++入門——C++介紹、命名空間、輸入輸出

    【C++初階】C++入門——C++介紹、命名空間、輸入輸出

    ?C語言是 結(jié)構(gòu)化 和 模塊化 的語言,適合處理 較小規(guī)模 的程序。對于復(fù)雜的問題,規(guī)模較大的程序,需要高度的抽象和建模時,C語言則不合適。為了解決軟件危機(jī),20世紀(jì)80年代,計算機(jī)界提出了 OOP (object oriented programming: 面向?qū)ο?)思想,支持面向?qū)ο蟮某绦蛟O(shè)計語言應(yīng)

    2024年02月11日
    瀏覽(17)
  • 【C++】關(guān)鍵字 & 命名空間 & 輸入輸出 & 缺省函數(shù)

    【C++】關(guān)鍵字 & 命名空間 & 輸入輸出 & 缺省函數(shù)

    C++? 總計 63 個, C語言 32 個 直接上圖:? asm do if return try continue auto double inline short typedef for bool dynamic_cast int signed typeid public break else long sizeof typename throw case enum mutable static union wchar_t catch explicit namespace static_cast unsigned default char export new struct using friend class ext

    2024年02月08日
    瀏覽(26)
  • 【C++】:C++關(guān)鍵字,命名空間,輸入&輸出,缺省參數(shù)

    【C++】:C++關(guān)鍵字,命名空間,輸入&輸出,缺省參數(shù)

    C++總計63個 ,C語言32個。 ps:下面我們只是看一下C++有多少,不對進(jìn)行具體的講解。在以后的學(xué)習(xí)中會會了解的更深。 在C語言的語法中,有時候會遇到這樣的情況: 我們的本意是創(chuàng)建一個全局的 rand 變量,再進(jìn)行輸出。那為什么會報錯呢? 原因:

    2024年04月27日
    瀏覽(31)
  • 【C++學(xué)習(xí)】C++入門 | C++該怎么學(xué) | 命名空間 | 輸入輸出

    【C++學(xué)習(xí)】C++入門 | C++該怎么學(xué) | 命名空間 | 輸入輸出

    歡迎來到C++的世界,這是一門令人興奮的語言。 好吧,每當(dāng)我開始閱讀C++的書籍的時候,開頭的第一句話必定是這個, 也不知道其他語言的編程書籍是不是這樣,那就讓這句話也作為我C++分享之路上的第一句話吧。 目錄 寫在前面 1. C++怎么學(xué)? 1. C語言 2. Object-Oriented C++ 3.

    2024年02月10日
    瀏覽(32)
  • C++入門(1):命名空間,IO流 輸入輸出,缺省參數(shù)

    一、命名空間 1.1 命名空間的作用: ? 避免標(biāo)識符命名沖突 1.2 命名空間定義: :namespace PS: 命名空間可以嵌套. 在同一工程中,編譯器會把 相同名稱 的命名空間 合并 成到同一個命名空間中。 1.3 命名空間的使用 一個命名空間相當(dāng)于定義了一個作用域,其中的所有內(nèi)

    2024年02月07日
    瀏覽(29)
  • 【C++那些事兒】初識C++ 命名空間,C++中的輸入輸出以及缺省函數(shù)

    【C++那些事兒】初識C++ 命名空間,C++中的輸入輸出以及缺省函數(shù)

    君兮_的個人主頁 即使走的再遠(yuǎn),也勿忘啟程時的初心 C/C++ 游戲開發(fā) Hello,米娜桑們,這里是君兮_,數(shù)據(jù)結(jié)構(gòu)和算法初階更新完畢,我們繼續(xù)來擴(kuò)充我們的知識面,今天我們從認(rèn)識C++開始來帶大家學(xué)習(xí)C++,我之前看過一套書叫做《明朝那些事兒》,把本來枯燥的歷史講的生動

    2024年02月08日
    瀏覽(36)
  • C++基礎(chǔ)知識 (命名空間、輸入輸出、函數(shù)的缺省參數(shù)、函數(shù)重載)

    C++基礎(chǔ)知識 (命名空間、輸入輸出、函數(shù)的缺省參數(shù)、函數(shù)重載)

    ?? 例1: #include iostream 標(biāo)準(zhǔn)輸入輸出 std 是 c++ 標(biāo)準(zhǔn)庫的命名空間,將標(biāo)準(zhǔn)庫的定義實(shí)現(xiàn)都放到這個命名空間中 using namespace std 展開 std 里的內(nèi)容 cout ? c 代表的是 console 控制臺的意思, out 有輸出的意思 流運(yùn)算符 流插入 endl 等價于 \\\'n\\\' 在 c++ 中,變量、函數(shù)和類的名稱存在于

    2024年02月15日
    瀏覽(48)
  • [C++] C++入門第一篇 -- 命名空間,輸入輸出,缺省函數(shù),函數(shù)重載底層原理

    [C++] C++入門第一篇 -- 命名空間,輸入輸出,缺省函數(shù),函數(shù)重載底層原理

    ? 目錄 1、? 2、命名空間 2.1 命名空間的定義 2.2 命名空間的使用方式 2.2.1 加命名空間名稱及作用域限定符 2.2.2 使用using將命名空間中某個成員引入 2.2.3 使用using namespace 命名空間名稱引入 3、C++輸入與輸出 4、缺省參數(shù) 4.1 缺省參數(shù)的概念 4.2 缺省參數(shù)分類 4.2.1 全缺省參

    2024年02月15日
    瀏覽(20)
  • 【C++的奇跡之旅(二)】C++關(guān)鍵字&&命名空間使用的三種方式&&C++輸入&輸出&&命名空間std的使用慣例

    【C++的奇跡之旅(二)】C++關(guān)鍵字&&命名空間使用的三種方式&&C++輸入&輸出&&命名空間std的使用慣例

    C++是在C的基礎(chǔ)之上,容納進(jìn)去了面向?qū)ο缶幊趟枷?,并增加了許多有用的庫,以及編程范式 等。熟悉C語言之后,對C++學(xué)習(xí)有一定的幫助,本章節(jié)主要目標(biāo): 補(bǔ)充C語言語法的不足,以及C++是如何對C語言設(shè)計不合理的地方進(jìn)行優(yōu)化的,比如:作用 域方面、IO方面、函數(shù)方面、

    2024年04月09日
    瀏覽(23)
  • 【C++】C++入門第一課(c++關(guān)鍵字 | 命名空間 | c++輸入輸出 | 缺省參數(shù))

    【C++】C++入門第一課(c++關(guān)鍵字 | 命名空間 | c++輸入輸出 | 缺省參數(shù))

    目錄 前言 C++ 命名空間 1.命名空間的定義 A.標(biāo)準(zhǔn)命名空間定義 B.命名空間允許嵌套定義 C.同名命名空間的合并 ?2.命名空間的使用 加命名空間名稱及作用限定符? 使用using將命名空間中某個成員引入 使用using namespace命名空間名稱引入 C++的輸入和輸出 缺省參數(shù) 缺省參數(shù)

    2024年04月09日
    瀏覽(25)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包