C++基礎知識筆記(1)
1. sizeof操作符 與 strlen()函式的區別:
輸出為:20
20 12
總結:(1)sizeof操作符指出整個陣列的長度,但strlen()函式返回的是儲存在陣列中的字串的長度。
(2)strlen()函式只能用於儲存字串的陣列(即char陣列),否則編譯器會報錯
2. string類與char[]陣列的區別:
輸出為:12
12
總結:函式size()的功能與strlen()基本相同,但句法不同:s1不是作為函式引數,而是位於函式名之前,它們之間用句點連線.表明,s1是一個物件,而size()是一個類方法.
3. C++中的結構簡介:
輸出為:hello world!
hello world!
總結:在C++中,類和結構之後記得加“;”號.結構和類的用法幾乎完全一致,但是結構中的變數和函式預設都為public.另外,在結構中,不能直接初始化其中的變數.
輸出為:
chris
24
m
hello chris
harry
23
f
hello harry
總結:可像以上程式碼一樣初始化結構中的變數.
4. 列舉:
輸出為:
0 1 2 3
0 100 125 125 126 127
2
5
總結:熟悉列舉的使用規則.
5 指標和數字:
輸出為:
5 0xbfc91268
6 0x9fc5008
0 0x9fc5008
6. 使用new來建立動態陣列:
在編譯時給陣列分配記憶體被稱為靜態聯編,意味著陣列是在編譯時加入到程式中的;但使用new時,如果在執行階段需要陣列,則建立它;如果不需要,則不建立.還可以在程式執行時選擇陣列的長度.這被稱為動態聯編,意味著陣列是在程式執行時建立的.這種陣列叫做動態陣列.使用靜態聯編時,必須在編寫程式時指定陣列的長度;使用動態聯編時,程式將在執行時確定陣列的長度.
輸出為:
0
1
2
3
4
7. 二維陣列:
輸出為:
1 2 3 4
2 3 4 5
3 4 5 6
#include <iostream>
#include <cstring>
using namespace std;
int main() {
int p1[5] = {1,2,3,4,5};
char p2[20] = "hello world!";
cout << sizeof(p1) << endl;
cout << sizeof(p2) << '\t' << strlen(p2) << endl;
return 0;
}
輸出為:20
20 12
總結:(1)sizeof操作符指出整個陣列的長度,但strlen()函式返回的是儲存在陣列中的字串的長度。
(2)strlen()函式只能用於儲存字串的陣列(即char陣列),否則編譯器會報錯
2. string類與char[]陣列的區別:
#include <iostream>
#include <cstring>
#include <string>
using namespace std;
int main() {
char p1[30] = "hello world!";
string s1 = "hello world!";
cout << strlen(p1) << endl;
cout << s1.size() << endl;
return 0;
}
輸出為:12
12
總結:函式size()的功能與strlen()基本相同,但句法不同:s1不是作為函式引數,而是位於函式名之前,它們之間用句點連線.表明,s1是一個物件,而size()是一個類方法.
3. C++中的結構簡介:
#include <iostream>
#include <cstring>
#include <string>
using namespace std;
struct Test {
private:
int i;
string s ;
public:
void setIValue(int i);
int getIValue();
void setSValue(string s);
string getSValue();
void HW();
};
void Test::setIValue(int i) {
Test::i = i;
}
int Test::getIValue() {
return Test::i;
}
void Test::setSValue(string s) {
Test::s = s;
}
string Test::getSValue() {
return Test::s;
}
void Test::HW() {
for (int j=0; j<getIValue(); j++) {
cout << getSValue() << endl;
}
}
int main() {
Test test;
test.setIValue(2);
test.setSValue("hello world!");
test.HW();
return 0;
}
輸出為:hello world!
hello world!
總結:在C++中,類和結構之後記得加“;”號.結構和類的用法幾乎完全一致,但是結構中的變數和函式預設都為public.另外,在結構中,不能直接初始化其中的變數.
#include <iostream>
#include <cstring>
#include <string>
using namespace std;
struct Test {
string name;
int age;
char sex;
void hello();
};
void Test::hello() {
cout << "hello " << name << endl;
}
int main() {
/*
Test test = {
"chris",
24,
'm'
};
cout << test.name << endl << test.age << endl << test.sex << endl;
*/
Test test1[2] =
{
{"chris", 24, 'm'},
{"harry", 23, 'f'}
};
for(int i=0; i<2; i++) {
cout << test1[i].name << endl << test1[i].age << endl << test1[i].sex << endl;
test1[i].hello();
}
return 0;
}
輸出為:
chris
24
m
hello chris
harry
23
f
hello harry
總結:可像以上程式碼一樣初始化結構中的變數.
4. 列舉:
#include <iostream>
#include <cstring>
#include <string>
using namespace std;
int main() {
enum color {red, blue, green, yellow};
cout << red << '\t' << blue << '\t' << green << '\t' << yellow << endl;
enum number {first, second=100, third=125, fourth=125, fifth, sixth};
cout << first << '\t' << second << '\t' << third << '\t' << fourth << '\t' << fifth << '\t' << sixth << endl;
color myFlag1,myFlag2;
myFlag1 = color(2);
cout << myFlag1 << endl;
myFlag2 = color(5);
cout << myFlag2 << endl;
return 0;
}
輸出為:
0 1 2 3
0 100 125 125 126 127
2
5
總結:熟悉列舉的使用規則.
5 指標和數字:
#include <iostream>
#include <cstring>
#include <string>
using namespace std;
int main() {
int num = 5;
int *p1, *p2;
p1 = #
p2 = new int;
*p2 = 6;
cout << *p1 << '\t' << p1 << endl;
cout << *p2 << '\t' << p2 << endl;
delete p2;
cout << *p2 << '\t' << p2 << endl;
return 0;
}
輸出為:
5 0xbfc91268
6 0x9fc5008
0 0x9fc5008
6. 使用new來建立動態陣列:
在編譯時給陣列分配記憶體被稱為靜態聯編,意味著陣列是在編譯時加入到程式中的;但使用new時,如果在執行階段需要陣列,則建立它;如果不需要,則不建立.還可以在程式執行時選擇陣列的長度.這被稱為動態聯編,意味著陣列是在程式執行時建立的.這種陣列叫做動態陣列.使用靜態聯編時,必須在編寫程式時指定陣列的長度;使用動態聯編時,程式將在執行時確定陣列的長度.
#include <iostream>
#include <cstring>
#include <string>
using namespace std;
int main() {
int* pt = new int[5];
for(int i=0; i<5; i++) {
pt[i] = i;
}
for(int j=0; j<5; j++) {
cout << *(pt+j) << endl;
}
delete [] pt;
return 0;
}
輸出為:
0
1
2
3
4
7. 二維陣列:
#include <iostream>
#include <cstring>
#include <string>
using namespace std;
int main() {
int numArray[3][4] = {{1,2,3,4},{2,3,4,5},{3,4,5,6}};
for(int i=0; i<3; i++) {
for(int j=0; j<4; j++) {
cout << numArray[i][j] << '\t';
}
cout << endl;
}
return 0;
}
輸出為:
1 2 3 4
2 3 4 5
3 4 5 6
相關文章
- C++基礎知識學習筆記(1)C++筆記
- C++基礎知識學習筆記(3)C++筆記
- GO 學習筆記 《1. 基礎知識》Go筆記
- PHP學習筆記(1)–基礎知識篇PHP筆記
- vueX基礎知識點筆記Vue筆記
- sql基礎知識(筆記)(一)SQL筆記
- 基礎知識學習筆記筆記
- C++基礎知識C++
- Python學習筆記—day1—基礎知識Python筆記
- Java核心技術 卷1 基礎知識 部分筆記Java筆記
- 【C++】C++基礎知識C++
- RxJava 學習筆記 -- 基礎知識RxJava筆記
- 羽毛球基礎知識筆記筆記
- 1、基礎知識
- Android NDK學習筆記1-基礎知識篇Android筆記
- Redis基礎知識(學習筆記8--Redis命令(1))Redis筆記
- Redis基礎知識(學習筆記15--持久化 (1))Redis筆記持久化
- C++基礎知識整理C++
- linux基礎知識學習筆記Linux筆記
- Redis基礎知識(學習筆記1--五種基礎資料結構)Redis筆記資料結構
- PHP 基礎知識-1PHP
- DDD基礎知識1
- 機器學習基礎知識1機器學習
- 1.基礎知識
- DS #1 基礎知識
- (C++) queue容器基礎知識C++
- 虛擬化學習筆記-基礎知識筆記
- Java基礎知識學習筆記總結Java筆記
- R語言學習筆記:基礎知識R語言筆記
- Node基礎知識點--學習筆記(一)筆記
- oracle學習筆記零碎(五)--基礎知識複習(1)Oracle筆記
- React學習手記1--基礎知識React
- C/C++【知識點筆記】C++筆記
- Python基礎知識1Python
- java之路,基礎知識1Java
- 【1】測試基礎知識
- C++基礎知識篇:C++ 運算子C++
- MySQL必知必會筆記——查詢的基礎知識MySql筆記