@關於 c與c++知識點,你該瞭解這些 (一)
關於 c與c++知識點,你該瞭解這些 (一)
這是我自己在學習c++基礎的過程中,順便複習了下C語言,然後總結的一些小小知識點,希望對大家的學習能夠提供一些幫助吧,一起加油、共同進步哦。
第一節
1.
int a; sizeof(int) = sizeof(a); ---求所儲存的字節
2.
float aa = 'A' cout << (int)aa << endl; //輸出A的數值(強制轉化爲 int) 注意格式
3.
float f2 = 3e2 //3*10^2 float f3 = 3e-2 //3*0.1^2
4.
bool 真或假 bool flag = false/true(0/1); —除了0爲假,其餘都爲真
5.字符串
(1)
char str[ ] = "hello world" cout<<str<<endl;
(2) string 變量名 =”字符串值” (引用頭文件include“string” 有的是在iostream頭文件中)
string name[3] = {"張三","李四","王麻子"}; string name=”胖虎”;
6.
int a1 = 10; ++a1*10; //(運算結果爲110)先加1後乘以10,
int a1 =10; a1++*10; //(運算結果爲101)先乘以10 後加1,先執行表達式,再增加
7.
-= /= %=
int a=10; int b=5; cout<<(a==b); //輸出結果爲0(假)
8.
rand() % 80; //生成0-79的隨機數
rand() % 80+1; // 生成0-80隨機數
/* 需要包含頭文件 #include “cstdlib” */
// #include ”ctime“ (僞函數) srand((unsigned int)time(NULL)); 利用系統時鐘生成僞數字
9.
int a = 10; int b = 20; (a<b?a:b)=100; cout <<a; a=100 cout<<b; //b=2
10.
int a = 354; //個位 a%10 十位 a%100/10 百位 a/100
11.
\t 製表符代替空格
12.
goto flag ; flag: //跳轉語句 ---讀懂就可,不建議使用
13.
/*數組*/ int arr[5] = {1,2,3,4,5}
/*每個數組佔用的內存空間*/ sizeof(arr)
/*每個素佔用的內存空間 */ sizeof(arr[0]),
/*數組中元素個數爲*/ sizeof(arr) / sizeof(arr[0]) //------重點
14.
/*數組地址 */ int arr[5] = {1,2,3,4,5}
/*數組首整型地址*/ cout<< (int)arr;
/*第一個元素整型地址*/ cout<<(int)&arr[0]; //------重點
15.冒泡排序法
void fun(int c[], int d)
{
int temp=0;
for (int a = 0; a < d - 1; a++)
{
for (int b = 0; b < d - 1 - a; b++)
{
if (c[b] <c[b + 1])
{
temp = c[b];
c[b] = c[b + 1];
c[b + 1] = temp;
}
}
}
}
16.
/*二維數組 總元素*/ sizeof ( arr ) ;
/* 第一行元素 */ sizeof ( arr [0] ) ;
/* 行數 */ sizeof ( arr ) / sizeof ( arr [0] )
/* 列數 */ sizeof ( arr [0]) / sizeof( arr [0] [0] ) )
17.
/* 二維數組首地址 */ cout << arr << endl;
/* 第一行首地址 */ cout << arr [0] << endl;
/*第一個元素首地址 */ cout << & arr [0] [0] << endl; // 此三者相等三者相等
/* 第二行首地址 */ cout << arr[1] << endl;
18.
/*指針就是地址*/ int *p; (p爲指針變量) //使用時需要解引用 *p 即可 ( *p解引用)
19.
/*空指針: 用來給指針變量進行初始化,空指針不可以進行訪問的*/ int *p = NULL;
//不可再將地址賦值給 p 輸出
20.
const修飾指針 ---重點
1)const修飾指針---常量指針
2)const修飾常量---指針常量
3)const既修飾指針又修飾常量
21.
—重點—
//1)常量指針
const int * p = &a; /*指針的指向可以修改,但是指針指向 的值不可修改 */
//2)指針常量
int * const p = &a; /*指針的指向不可以修改,指針的值可以修改 */
//3)既修飾指針又修飾常量
const int * const p = &a; /*指針的指向和指針的值都不可以修改 */
//(如何記憶: const—常量 ,* p —指針 如何用:緊接着 const 的是p / * 緊跟着誰 誰不能操作)
22.
int arr [10], int * p; p = arr ; cout << *p;
//(數組的名稱爲其的首地址)
23.
值傳遞,不能修改實參的值,只能修改形參的值。地址傳遞可以修改實參的值。
24.
結構體
struct student/**** 自己創建的結構體類型爲 student, 此類型的變量名字爲s1, s2 ***/
{
string name;
int age;
int score;
};
//1 struct student s1;
//2 struct student s2 = { };
//3 創建結構體時順便創建結構體變量,通過.來訪問結構體中的屬性
25.
結構體創建自定義類型過程中struct不能省略,但是創建變量的過程c++ struct可以 省略
26.
// 結構體數組 struct 結構體名字 數組名字{個數}={ { },{ } ,{ } }
// 結構體指針 利用->可以通過結構體來訪問結構體的屬性
student s1 = { "李斯",56,99 };
student * p = &s1;
cout << "姓名:" << p->name
<< "年齡:" << p->age
<< "分數" << p->score;
27.結構體嵌套結構體
struct student
{
string name;
int scroe;
};
struct teacher
{
int id;
string name;
int age;
struct student s1;//學生 s1
};
teacher t;
t.id = 10086;
t.name = "老王";
t.age = 58;
t.s1. name = "小王";
t.s1.scroe = 99;
teacher * p = &t;
cout << "老師姓名:" << p->name
<< "老師工號: " << p->id
<< "老師年齡: " << p->age
<< "老師的學生名字: " << p->s1.name
<< "老師的學生分數: " << p->s1.scroe;
28. 結構體中使用const來防止誤操作
29
—重點—
main裏面調用函數,形參相當於把參數複製了一遍,增大了儲存空間和代碼量。將函數的形參變爲指針,可以大大減少內存的佔用(指針不會複製數據,其只是進行地址傳遞)
30.
system( “ pause ” ); //請按任意鍵繼續
system( “ cls ” ); //清屏操作
未完待續…
有什麼問題歡迎給我留言哦
hexo博客:https:www.ho-brother.ltd