關於 c與c++知識點,你該瞭解這些 (一)

@關於 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
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章