啊我摔倒了..有沒(méi)有人扶我起來(lái)學(xué)習(xí)....
👱個(gè)人主頁(yè): 《 C G o d 的 個(gè) 人 主 頁(yè) 》 \color{Darkorange}{《CGod的個(gè)人主頁(yè)》} 《CGod的個(gè)人主頁(yè)》交個(gè)朋友叭~
💒個(gè)人社區(qū): 《 編 程 成 神 技 術(shù) 交 流 社 區(qū) 》 \color{Darkorange}{《編程成神技術(shù)交流社區(qū)》} 《編程成神技術(shù)交流社區(qū)》加入我們,一起高效學(xué)習(xí),收割好Offer叭~
🌱刷題鏈接: 《 L e e t C o d e 》 \color{Darkorange}{《LeetCode》} 《LeetCode》快速成長(zhǎng)的渠道哦~
#include#includeint rand = 10;//變量rand與庫(kù)函數(shù)rand()沖突了
int main()
{printf("%d\n", rand);
return 0;
}
namespace bobo
{// 命名空間中可以定義變量/函數(shù)/類(lèi)型
int rand = 10;
int Add(int left, int right)
{return left + right;
}
struct Node
{struct Node* next;
int val;
};
}
namespace N1
{int a;
int b;
int Add(int left, int right)
{return left + right;
}
namespace N2
{int c;
int d;
int Sub(int left, int right)
{return left - right;
}
}
}
namespace bobo
{// 命名空間中可以定義變量/函數(shù)/類(lèi)型
int a = 0;
int b = 1;
int Add(int left, int right)
{return left + right;
}
struct Node
{struct Node* next;
int val;
};
}
int main()
{// 編譯報(bào)錯(cuò):error C2065: “a”: 未聲明的標(biāo)識(shí)符
printf("%d\n", a);
return 0;
}
結(jié)果:
int main()
{printf("%d\n", N::a);
return 0;
}
using N::b;
int main()
{printf("%d\n", N::a);
printf("%d\n", b);
return 0;
}
using namespce N;
int main()
{printf("%d\n", N::a);
printf("%d\n", b);
Add(10, 20);
return 0;
}
三、C++輸入&輸出#include// std是C++標(biāo)準(zhǔn)庫(kù)的命名空間名,C++將標(biāo)準(zhǔn)庫(kù)的定義實(shí)現(xiàn)都放到這個(gè)命名空間中
using namespace std;
int main()
{cout<< "Hello world!!!"<< endl;
return 0;
}
說(shuō)明:
注意:
早期標(biāo)準(zhǔn)庫(kù)將所有功能在全局域中實(shí)現(xiàn),聲明在.h后綴的頭文件中,使用時(shí)只需包含對(duì)應(yīng)頭文件即可,后來(lái)將其實(shí)現(xiàn)在std命名空間下,為了和C頭文件區(qū)分,也為了正確使用命名空間,規(guī)定C++頭文件不帶.h;舊編譯器(vc 6.0)中還支
#includeusing namespace std;
int main()
{int a;
double b;
char c;
// 可以自動(dòng)識(shí)別變量的類(lèi)型
cin>>a;
cin>>b>>c;
cout<
#include#include
std::map
易寫(xiě)錯(cuò)。聰明的同學(xué)可能已經(jīng)想到:可以通過(guò)typedef給類(lèi)型取別名,比如:
#include#include
使用typedef給類(lèi)型取別名確實(shí)可以簡(jiǎn)化代碼,但是typedef有會(huì)遇到新的難題:
typedef char* pstring;
int main()
{const pstring p1; // 編譯成功還是失敗?
const pstring* p2; // 編譯成功還是失?。? return 0;
}
在編程時(shí),常常需要把表達(dá)式的值賦值給變量,這就要求在聲明變量的時(shí)候清楚地知道表達(dá)式的類(lèi)型。然而有時(shí)候要做到這點(diǎn)并非那么容易,因此C++11給auto賦予了新的含義
4.2 auto簡(jiǎn)介int TestAuto()
{return 10;
}
int main()
{int a = 10;
auto b = a;
auto c = 'a';
auto d = TestAuto();
auto e;
cout<< typeid(b).name()<< endl;
cout<< typeid(c).name()<< endl;
cout<< typeid(d).name()<< endl;
//auto e; 無(wú)法通過(guò)編譯,使用auto定義變量時(shí)必須對(duì)其進(jìn)行初始化
return 0;
}
注意:
使用auto定義變量時(shí)必須對(duì)其進(jìn)行初始化,在編譯階段編譯器需要根據(jù)初始化表達(dá)式來(lái)推導(dǎo)auto的實(shí)際類(lèi)型。因此auto并非是一種“類(lèi)型”的聲明,而是一個(gè)類(lèi)型聲明時(shí)的“占位符”,編譯器在編譯期會(huì)將auto替換為變量實(shí)際的類(lèi)型
int main()
{int x = 10;
auto a = &x;
auto* b = &x;
auto& c = x;
cout<< typeid(a).name()<< endl;
cout<< typeid(b).name()<< endl;
cout<< typeid(c).name()<< endl;
return 0;
}
輸出結(jié)果:
void TestAuto()
{auto a = 1, b = 2;
auto c = 3, d = 4.0; // 該行代碼會(huì)編譯失敗,因?yàn)閏和d的初始化表達(dá)式類(lèi)型不同
}
4.4 auto不能推導(dǎo)的場(chǎng)景// 此處代碼編譯失敗,auto不能作為形參類(lèi)型,因?yàn)榫幾g器無(wú)法對(duì)a的實(shí)際類(lèi)型進(jìn)行推導(dǎo)
void TestAuto(auto a)
{}
void TestAuto()
{int a[] = {1,2,3};
auto b[] = {4,5,6};
}
void TestFor()
{int array[] = {1, 2, 3, 4, 5 };
for (int i = 0; i< sizeof(array) / sizeof(array[0]); ++i)
array[i] *= 2;
for (int* p = array; p< array + sizeof(array) / sizeof(array[0]); ++p)
cout<< *p<< endl;
}
對(duì)于一個(gè)有范圍的集合而言,由程序員來(lái)說(shuō)明循環(huán)的范圍是多余的,有時(shí)候還會(huì)容易犯錯(cuò)誤。因此C++11中引入了基于范圍的for循環(huán)。for循環(huán)后的括號(hào)由冒號(hào)“ :”分為兩部分:第一部分是范圍內(nèi)用于迭代的變量,第二部分則表示被迭代的范圍
void TestFor()
{int array[] = {1, 2, 3, 4, 5 };
for (auto& e : array)
e *= 2;
for (auto e : array)
cout<< e<< " ";
return 0;
}
注意: 與普通循環(huán)類(lèi)似,可以用continue來(lái)結(jié)束本次循環(huán),也可以用break來(lái)跳出整個(gè)循環(huán)
5.2 范圍for的使用條件void TestFor(int array[])
{for (auto& e : array)
cout<< e<< endl;
}
六、指針空值nullptr(C++11)
6.1 C++98中的指針空值void TestPtr()
{int* p1 = NULL;
int* p2 = 0;
// ……
}
NULL實(shí)際是一個(gè)宏,在傳統(tǒng)的C頭文件(stddef.h)中,可以看到如下代碼:
#ifndef NULL
#ifdef __cplusplus
#define NULL 0
#else
#define NULL ((void *)0)
#endif
#endif
可以看到,NULL可能被定義為字面常量0,或者被定義為無(wú)類(lèi)型指針(void*)的常量。不論采取何種定義,在使用空值的指針時(shí),都不可避免的會(huì)遇到一些麻煩,比如:
void f(int)
{cout<<"f(int)"<cout<<"f(int*)"<f(0);
f(NULL);
f((int*)NULL);
return 0;
}
注意:
你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機(jī)房具備T級(jí)流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級(jí)服務(wù)器適合批量采購(gòu),新人活動(dòng)首月15元起,快前往官網(wǎng)查看詳情吧
本文題目:C++·入門(mén)|準(zhǔn)備知識(shí)-創(chuàng)新互聯(lián)
本文路徑:http://www.rwnh.cn/article22/ccijjc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供移動(dòng)網(wǎng)站建設(shè)、網(wǎng)站收錄、域名注冊(cè)、軟件開(kāi)發(fā)、ChatGPT、服務(wù)器托管
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀(guān)點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話(huà):028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容