首頁 > 軟體

C語言選擇、迴圈、函數、陣列與操作符

2022-04-14 16:02:23

1、選擇語句

如果你好好學習,校招時拿一個好offer,走上人生巔峰。如果你不學習,畢業等於失業,回家賣紅薯。這就是選擇!

#include<stdio.h>
int main()
{
    int a = 0;
    printf("1:好好學習,拿大廠offer     2、宿舍擺爛,畢業即失業nn");
    printf("請選擇 1 或者 0 :->");
    scanf("%d", &a);
    if (a == 1)
    {
        printf("加油,為你點贊!n");
    }
    else
    {
        printf("回家賣紅薯!n");
    }
    return 0;
}


2、迴圈語句

C語言中有三種迴圈,分別是:for迴圈、while迴圈、do while迴圈,下面我用例子來演示。

for迴圈

#include<stdio.h>
int main()
{
    int i = 0;
    for (i = 0; i < 10; i++)
    {
        printf("%d ", i);
    }
    return 0;
}

while迴圈

#include<stdio.h>
int main()
{
    int i = 0;
    while (i < 10)
    {
        printf("%d ", i);
        i++;
    }
    return 0;
}

do while迴圈

#include<stdio.h>
int main()
{
    int i = 0;
    do {
        printf("%d ", i);
        i++;
    } while (i < 10);
    return 0;
}

其中 i 為迴圈變數,i++ 為迴圈變數增值,i<10 為迴圈結束條件。

3、函數

函數就是一個具有特定功能的程式碼塊,其作用是將程式碼進行封裝,以提高程式碼的重用性,提高開發效率。

#include<stdio.h>

//Add就是一個函數,用來計算兩個引數的和
int Add(int x, int y)   // 開頭的int:函數的返回值  中間的int:引數的型別   x、y:函數的引數
{
    return x + y;
}

int main()
{
    int a = 0;
    int b = 0;
    int ret = Add(a, b);  //呼叫Add函數
    printf("%dn", ret);
    return 0;
}

4、陣列

陣列的概念

陣列是具有相同元素型別的集合。

陣列的定義方式

#include<stdio.h>
int main()
{
    //第一種定義方式:指定大小,並對其進行初識化
    int a1[10] = { 1,2,3,4,5,6,7,8,9,10 };
    //第二種定義方式:指定大小,但不初識化
    char a2[10];
    //第三種定義方式:不指定大小,但必須得初始化,它會根據你初始化元素個個數自動計算陣列的大小
    float a3[] = { 1.0,2.0,3.0 };
    return 0;
}

陣列的下標

C語言規定:陣列的每個元素都有一個下標,且陣列下標是從0開始的。陣列可以通過下標來存取陣列元素。

陣列的簡單使用

#include <stdio.h>
int main()
{
    int i = 0;
    int arr[10] = { 1,2,3,4,5,6,7,8,9,10 };
    for (i = 0; i < 10; i++)
    {
        printf("%d ", arr[i]);
    }
    printf("n");
    return 0;
}

5、操作符

C語言的操作符涉及到的細節以及知識面都比較廣,在這裡我只是簡單的介紹一部分操作符的基本使用,更多的細節我會在後面的文章中進行講解。

1、算術操作符

+ - * / %

2、移位元運算符

>> <<

3、位元運算符

& ^ |

4、賦值操作符

= += -= *= /= &= ^= |= >>= <<=

#include<stdio.h>
int main()
{
    int a = 10;
    if (a == 20)  // ==:判斷語句,判斷 a 與 20 是否相等
    {
        printf("判斷:%dn", a);
    }
    if (a = 20)  // =:賦值語句,把 10 賦給 a,這條語句始終為真
    {
        printf("賦值:%dn", a);
    }
    return 0;
}

5、單目操作符

  • ! 邏輯反操作
  • - 負值
  • + 正值
  • & 取地址
  • sizeof 運算元的型別長度(以位元組為單位)
  • ~ 對一個數的二進位制按位元取反
  • – 前置、後置–
  • ++ 前置、後置++
  • * 間接存取操作符(解除參照操作符)
  • (型別) 強制型別轉換
#include<stdio.h>
int main()
{
	int a = 10;
	int b = a++;    //後置++,先使用,再++,即先把 a = 10 賦給 b ,a 再++,執行後 b=10,a=11
	int c = ++a;    //前置++,先++,再使用,即先讓 a++ 變成 12,再把 a 賦給 c ,執行後 c=12,a=12;
	printf("a = %dnb = %dnc = %d", a, b, c);
	return 0;
}
1

6、關係操作

> >= < <= != ==

7、邏輯操作符

&& 邏輯與
|| 邏輯或

#include<stdio.h>
int main()
{
    int a = 10;
    int b = 20;
    if (a == 10 && b == 20)   //邏輯與,必須兩個條件都為真if語句才會執行
    {
        printf("a && bn");
    }
    if (a == 10 || b == 30)   //邏輯或,只有兩個條件都為假時if語句才不會執行
    {
        printf("a || bn");
    }
    return 0;
}

8、條件操作符

exp1 ? exp2 : exp3

#include<stdio.h>
int main()
{
    int a = 10;
    int b = 20;
    int max = a > b ? a : b;  //條件操作符,如果 a>b 條件成立,就把 a 賦給 max,否則 b 賦給 max
    printf("max = %dn", max);
    return 0;
}

9、逗號表示式

exp1, exp2, exp3, …expN

#include<stdio.h>
main()
{
    int x, y, z;
    x = y = 1;
    //逗號表示式,從左向右依次執行每個運算,但是隻取最後一個逗號的結果
    z = (x++, y++, ++y);    //先執行前面兩個逗號,x++ -> x = 2, y++ -> y=2, 再最後一個逗號,z=++y,前置++,所以z=y=3
    printf("x = %dny = %dnz = %dn", x, y, z);
    return 0;
}

這裡要特別注意:賦值運運算元的優先順序是高於逗號表示式的,也就是說,如果這裡 z 後面沒有括號,那麼編譯器會最先將 x 的值賦給 z,再執行後面的逗號表示式。

#include<stdio.h>
main()
{
    int x, y, z;
    x = y = 1;
    //逗號表示式,從左向右依次執行每個運算,但是隻取最後一個逗號的結果
    //賦值運運算元優先順序高於逗號表示式,先將 x 賦給 z,那麼 z = 1;
    //再執行前面兩個逗號,x++ -> x = 2, y++ -> y=2, 再最後一個逗號,++y -> y = 3
    z = x++, y++, ++y;
    printf("x = %dny = %dnz = %dn", x, y, z);
    return 0;
}

10、下標參照、函數呼叫和結構成員

[] () . ->

#include<stdio.h>
struct Stu {         //定義一個結構體型別
    char name[15];
    int age;
    char sex[6];
};
int main()
{
    struct Stu s = { "張三",20,"男" };   //用結構體型別定義一個結構體變數 s 並對其初始化
    printf("%st%dt%sn", s.name, s.age, s.sex);  //用 . 操作符對結構體成員進行存取
    return 0;
}

到此這篇關於C語言選擇、迴圈、函數、陣列與操作符的文章就介紹到這了,更多相關C語言函數內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!


IT145.com E-mail:sddin#qq.com