C C 語言一些知識

2021-09-22 10:24:27 字數 1594 閱讀 1106

c++知識

c語言的知識

struct teachteach;                  引用就必須得加 struct 關鍵字  struct teach t1;不然報錯,但是在c++增強了,不會報錯,c語言會。

第二種就是

typedef struct teacherteacher; 直接 teacher t2,不會報錯。

char * meth()
1.char buf = ;

2.char buf[4] = ;

3.字串初始化字元陣列 char buf3 = 「abcd」; buf3作為字元陣列 應該是5個位元組,作為字串4個位元組。strlen(buf3) 長度是4. size = sizeof(buf3)則是5.因為』\0』也佔空間。

char *myto = null;

copy_str(from,myto);

myto位址是0,*myto指向0這塊記憶體空間,0這塊位址空間是收到保護的,所以每次程式執行不了。這也是我總是錯的原因。

2.在乙個函式中,形參被傳入後,拿形參指標操作後,形參的位址肯定會被改變,最後想拿形參操作得到剛開始的操作,那麼一定是不對的。

3.操縱char *p = 「sdsads」;

不能修改p的位址,因為p指向的記憶體空間是可讀,不可寫的。

p指向的記憶體空間是常量區。

4.getstar(char * p,char * a); // 必須提前判斷,不然如果傳了null指標,程式總是執行不了的。

if(*p!=『\0』); //這就錯誤了

5.char buf[3]=」abc」; //錯誤了,實際abc後面需要乙個』\0』空間。

程式例: 

#include #include #include int main(void)

1.struct  students1,s2;    //定義型別的同時,定義變數
2.匿名

struct

s3,s4; //匿名型別 定義變數

初始化

1.定義就賦值

teacher t1 = ;

函式名: strcpy 

功 能: 串拷貝

用 法: char *strcpy(char *str1, char *str2);

程式例:

#include #include int main(void)

函式名: memcpy

功 能: 從源source中拷貝n個位元組到目標destin中

用 法: void *memcpy(void *destin, void *source, unsigned n);

程式例:

#include #include int main(void)

C C 一些知識3(物件導向)

c 的空類預設生成4個的函式 建構函式,析構函式,拷貝建構函式,賦值函式 c 中的struct和class的唯一區別就是預設的訪問控制 struct為public,而class為private。在c 中存在struct的唯一意義是讓c程式設計師有乙個歸屬感,讓c 編譯器相容以前的程式 有這樣一段 其...

有關C C 的一些基礎知識

1.多型類中的虛函式表是compile time,還是run time時建立的?答案 虛函式表是在編譯期就建立了,各個虛函式這時被組織成了乙個虛函式的入口位址的陣列.而物件的隱藏成員 虛函式表指標是在執行期 也就是建構函式被呼叫時進行初始化的,這是實現多型的關鍵.2.乙個父類寫了乙個virtual ...

c c 一些語法基礎

if 和 else if 語句的區別 本人剛開始學習的時候覺得 if 語句和 else if 語句沒有什麼明顯的區別,也老是搞混,尤其是做一些基礎的關於判斷語句的程式設計題目時,傻傻分不清。今天我就來講講我個人的一些見解,其實剛開始學的時候以為 else if 語句是c自帶的,在這裡用一道簡單的程式...