C和C 學習心得 更新中

2022-09-08 17:39:13 字數 3448 閱讀 5338

1.關於庫函式的呼叫,使用strcmp(),strcpy(),strcat()等函式,需要加上#include,還有值得注意的一點是,在呼叫strcpy時,假設你寫了正常的呼叫語句,如strcpy(str1,str2),編譯器仍會報錯,則可能需要使用更安全的strcpy_s() 相關詳解

2.字元的輸入可使用cin.get(),和c中gets()函式的用法差不多,如ar=cin.get(),可用於在多組字串的輸入中吸收無關字元(如輸入資料後的回車擊鍵)。而字串的輸入可以使用cin.getline()函式,該函式使用規則:cin.getline()實際上有三個引數,cin.getline(接受字串到m,接受個數5,結束字元),當第三個引數省略時,系統預設為'\0' 是'/n'吧。相關詳解

示例**

int repeat,i;

char c,ar,str[100];

cin>>repeat;//輸入迴圈次數

for(i=1;i<=repeat;i++)

3.字元和字串的輸出,使用cout即可,輸出字串記得要用字元陣列的首位址(即函式名)。值得一提的是在c語言中,%g的作用(詳解)

還有就是強制轉換(type)可以用於浮點數的取整數部分的運算,下面的**可以將實數分為整數部分和非整數部分兩部分。

#include void splitfloat( float x, int *intpart, float *fracpart );//用於將實數拆分成整數部分和小數部分

int main()

void splitfloat( float x, int *intpart, float *fracpart )

else

}

4.在這裡提一下,指標陣列的使用。示例如下:

const char*week[7]=;
其實在這裡我有一些疑惑,把char*前的const去掉,編譯器會報錯????相關用法和說明

5.無形參和實參的自定義函式使用

如無返回值:

宣告:void a(void);

定義:void a(void){}

呼叫:a(); 或 a(void);

有返回值就把void換成相應型別即可

6.關於string型別(相關詳細內容)

(和陣列很像)甚至可以如下這麼操作:

string name="ycy"

name="this is"+name;//輸出 this is ycy

還可以使用函式

#include #include using namespace std;

int main()

下面這段**可以完成string型別的a與char型別的temp陣列的連線,並把得到的新字串儲存在a中

字串(字元陣列和string都可)的連線可使用strcat函式:strcat(str1,str2),把str1的尾和str2的頭連線,並把新字串儲存到str1中。

string型別的連線:str1=str1+str2(str1必須放前面)

#include#includeusing namespace std;

string a="hello",b="1";

char temp[100]="world";

int main()

;void ininode(node** head)//準初始化函式

else cout << "succeed!" << endl;

(*head)->next = null;//該鍊錶有頭結點

}node* getnode(int item)//建立動態節點(存有資料)

newp->data = item;

newp->next = null;

return newp;

}void insetafter(node* p, node* newp)//後插運算

void listinsert(node* head, int item)//將新增鍊錶結點按公升序插入

insetafter(p, newp);

}node* deleteafter(node* p)//後刪操作,刪除p後的結點

node* findnode(const node* h, int item)//查詢指定結點

return p;

}void listclear(node* h)//清表操作,清到只剩乙個頭結點的空單鏈表

cout << "clear!" << endl;

}void revert(node* h)//逆置鍊錶操作

}void disp(node* head)//展示鍊錶

}int main()

; ininode(&head);

for (int i = 0; i < 5; i++)

disp(head);

cout << endl;

revert(head);

disp(head);

listclear(head);

return 0;

}

9.初始化陣列

方法一:在定義int型別陣列時,如果寫成:

int a[1000]=;
此時,陣列中除了a[0]=1,其他元素全部被系統初始化為0

方法二:memset()函式,可用於多次初始化 memset函式(初始化)

c++語言中memset函式怎麼用?

#include#includeint main

9.關於常量的使用

·巨集定義

用 #define 定義識別符號的一般形式為:

#define  識別符號  常量   //注意, 最後沒有分號,識別符號常用大寫字母組成
·使用const關鍵字

整型常量定義:如:

const int max=1;
實型常量定義:如

//c編譯系統對實型常量不分float和double,都作double處理以更精確,也可以在實型常量後面加上字母f或f來指定其為單精度實型(float)

型實型常量)3.1415f(float型實型常量) .87l(long double型實型常量)

const double first=3.1415926;

const double second=3.1415926f;

10.關於inline關鍵字的使用 inline關鍵字的用法詳解

·宣告內聯函式時使用關鍵字inline

格式為:

inline 返回值型別 函式名(形參表)

宣告和函式體需要出現在呼叫之前,不允許先給出函式原型,在呼叫之後才給出函式體

C 學習心得

c 學習心得 c 是最難的語言 這個世界上最難的程式語言可能非 c 莫屬了。你千萬 不要以為 幾天就可以學好 c c 的學習曲線是相當 bt的,你可以看看 這篇文章 c 是一門很自由的語言,自由到了有點 bt和恐怖的地步 我甚至 認為c 並不是一門成熟的程式語言,因為太容易犯錯了。所以,你一定要在 ...

c 學習心得

1.typedef struct 結構體型別 c 提供了許多種基本的 資料型別 如int float double char等 供使用者使用。但是由於程式需要處理的問題往往比較複雜,而且呈多樣化,已有的 資料型別 顯得不能滿足使用要求。因此c 允許使用者根據需要自己宣告一些型別,使用者可以自己宣告的...

C 學習心得

我是乙個轉專業到計算機行業的,系統學習c 大概有兩年了,其中走了很多彎路,也陷入很多次迷茫,最近有一些新的感受,所以想總結下來,我所認為的學習一門語言所需要經歷的階段。當你覺得已經掌握大部分的語法知識後 60 以上 可以去看一些簡單專案的源 一方面學習別人解決問題的方式,另一方面是加深語法知識的印象...