C語言基礎(chǔ)

  1. printf格式化輸出到屏幕
    printf("輸出控制符", 輸出參數(shù)),輸出控制符包括:%d, %ld, %f, %lf, %c, %x(%X, %#x, %#X), %s等。
  2. scanf
    scanf("輸入控制符", 輸入?yún)?shù)),對于變量需要前面加&,比如int i; &i表示i的地址,&是取地址符。
    scanf中的非輸入控制符必須原樣輸入,scanf中盡量不要使用非輸入控制符。
  3. 運算符
    算術(shù)運算符:+ - * / %
    關(guān)系運算符:>, >=, <, <=, !=, ==
    邏輯運算符:!, &&, ||,&&的左邊是假時右邊不執(zhí)行,||的左右是真時右邊不執(zhí)行
    賦值運算符:=, +=, -=, *=, /=
    優(yōu)先級:算術(shù)運算符 > 關(guān)系 > 邏輯 > 賦值
  4. 真假的處理
    非0就是真,0就是假,真用1表示,假用0表示
  5. 流程控制
    if,if。。。else,if。。。else if。。。else
  6. 循環(huán)語句
    for,while,do...while
  7. switch語句
switch(value) {
    case 1:
        語句1;
        // break;
    case 2:
        語句2;
        break;
    default:
        語句3;
        break;
}

如果注釋掉case1的break,則會執(zhí)行語句1和語句2,因為一旦找到入口之后,后邊就是順序執(zhí)行了。

  1. 指針
    int * p,p是指針變量,int 是p的類型,p = &i,p就是指向i的指針(地址),p = i,*p表示p指向的變量。
    一維數(shù)組名是指針常量,它存放的是一維數(shù)組第一個元素的地址。
int a[3] = {1, 2, 3};
*a 等于 a[1]
*(a + i) 等于 a[i] 

sizeof(數(shù)據(jù)類型)或sizeof(變量名)可以輸出對應(yīng)內(nèi)容所占的字節(jié)數(shù)。
一個指針變量的大小為4個字節(jié)。
指針變量指向的是變量首字節(jié)的地址。

  1. 動態(tài)內(nèi)存分配
    要使用malloc函數(shù),必須添加<malloc.h>頭文件;
    malloc(4)表示請求系統(tǒng)分配4個字節(jié);
    malloc(4)函數(shù)只能返回第一個字節(jié)的地址;
    (int *)malloc(4)進(jìn)行強制類型轉(zhuǎn)換,告訴它指向的地址占幾個字節(jié);
    int * p = (int *)malloc(4);
    free(p)會釋放p所指向的內(nèi)存;
    動態(tài)構(gòu)造一維數(shù)組
int main(void) {

    int * pAtrr;
    int len;

    printf("please input length of array!\n");
    scanf("%d", &len);

    pAtrr = (int *)malloc(4 * len);
    for (int i = 0; i < len; i++) {
        pAtrr[i] = i + 3;
    }
    
    for (int i = 0; i < len; i++)
    {
        printf("p[%d] = %d\n", i, pAtrr[i]);
    }
    
    return 0;
}
  1. 多級指針
int main(void) {
    int i = 10;
    int * p = &i;
    int ** q = &p;
    int *** r = &q;

    printf("i = %d\n", ***r);
    return 0;
}
  1. 結(jié)構(gòu)體
struct Student
{
    int age;
    float score;
    char sex;
};

struct Student st2 = {20, 86, 'M'};
st2.age
struct Student *s = &st2;
s -> age  = 30;
s -> score = 60;
s -> sex = 'F';

結(jié)構(gòu)體變量可以在初始化時賦值,結(jié)構(gòu)體指針變量感覺和基本數(shù)據(jù)類型指針變量類似。
s -> age在計算機內(nèi)部會被轉(zhuǎn)化為(*s).age,它的含義是s指向的結(jié)構(gòu)體變量的age成員。

  1. 枚舉
enum Weekday {
    Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday
};

int main(void) {
    enum Weekday day = Friday;
    return 0;
}

參考:

  1. C++學(xué)習(xí)路線(最全資源整合)
  2. 郝斌老師的C語言教程
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容