成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

初識C語言:從0開始,由菜鳥變大牛(3)-創(chuàng)新互聯(lián)

上篇我們講解了變量、常量、字符串、轉義字符、注釋。那么我們繼續(xù)來學習C語言的一些基本知識,同樣,知識也是點到為止,不會很深入,后面我會發(fā)布更深層次的知識。(注:本篇的內(nèi)容稍稍有點多,大家可以分批學習)

站在用戶的角度思考問題,與客戶深入溝通,找到集安網(wǎng)站設計與集安網(wǎng)站推廣的解決方案,憑借多年的經(jīng)驗,讓設計與互聯(lián)網(wǎng)技術結合,創(chuàng)造個性化、用戶體驗好的作品,建站類型包括:網(wǎng)站建設、網(wǎng)站制作、企業(yè)官網(wǎng)、英文網(wǎng)站、手機端網(wǎng)站、網(wǎng)站推廣、國際域名空間、虛擬主機、企業(yè)郵箱。業(yè)務覆蓋集安地區(qū)。1.選擇語句

在C語言中有時有多種分支,我們就需要用到選擇語句

在C語言中有兩種常見的選擇語句:if語句、switch語句,本篇先來學習if語句

1.1if語句:
  • 語法結構

if(//表達式1)
{
    //語句1;
}
else if(//表達式2)
{
    //語句2;
}
else
    //語句3;

我們這里要注意,如果if、else if、else后面有多條語句就得加上{},如果只有一條語句可以不用加{},另外else if可以使用多次用來進行多個選擇

我們來寫一串代碼來實現(xiàn)選擇語句:

#includeint main()
{
    int input = 0;
    //進行選擇 
    printf("你要學好C語言嗎?(1 or 0)\n");
    //輸入    
    scanf("%d", &input); 
    //選擇語句                   
    if (input == 1)     //要注意這里使用的是==,意思是如果input等于1則執(zhí)行下面的語句
    {
        //輸出
        printf("你可以得到好offer\n");
    }
    else                //這里是input不等于1的情況,則執(zhí)行下面的語句
    {
        //輸出
        printf("另尋出路吧!\n");
    }
    return 0;
}
1.2注意事項:
  • if語句里面的表達式如果要判斷相不相等一定要使用==

  • 如果if、else后面有多條語句得加上{}

  • 如果要判斷多個條件可以使用多次else if

2.循環(huán)語句

循環(huán)很好理解,就比如我們?nèi)諒鸵蝗盏膶W習,老師日復一日的講課...等等

那在C語言中怎么樣實現(xiàn)循環(huán)呢?

在C語言中的循環(huán)語句有while循環(huán);for循環(huán),do while循環(huán)

本篇我們先來介紹while循環(huán)

2.1while循環(huán):
  • 語法結構

while(//表達式)
{
     //循環(huán)語句;
}

我們用代碼來表示一下:

比如:跟著我學C語言,每天都要敲代碼,當你敲了20000行有效代碼時,你將會有一個好的offer

#includeint main()
{
    printf("跟著我學習C語言\n");
    int line = 0;
    //設置循環(huán):當line小于20000時進入這個循環(huán)
    while (line< 20000)        
    {
        printf("敲代碼:%d\n",line);
        line++;    //這里的意思表示line每次進來之后都會+1
    }
    if (line >= 20000)  //當line大于等于20000之后跳出上面的循環(huán)進入這個選擇語句中
        printf("你將會得到一個好offer\n");

    return 0;
}
3.函數(shù)

函數(shù)能夠使用一個獨立的功能

我們在初識C語言(2)里面在講注釋的時候使用了一串代碼就是使用函數(shù)來求兩個數(shù)的和

  • 不用函數(shù)來寫兩個數(shù)的求和:

#includeint main()
{
    int a = 0;
    int b = 0;
    int sum = 0;
    //輸入
    printf("請輸入兩個整數(shù)\n");
    scanf("%d %d", &a, &b);
    //計算
    sum = a + b;
    //輸出
    printf("sum=%d\n", sum);
    return 0;
}

當我們在一個工程里寫很多加法運算的時候,如果每次使用這種寫法會很麻煩,這時候就要使用函數(shù)

  • 用函數(shù)寫兩個數(shù)的求和:

#include//這里設置這個用來求和的函數(shù)Add
int Add(int x, int y)         //由于輸入的是整形,所以函數(shù)類型也應該為整形
{                            //在函數(shù)里面設置兩個整形x,y來接收a,b
    int z = x + y;           //這里用z來表示兩個數(shù)的和
    return z;                //這里返回值是z,是因為當我們計算出a,b的和將它存放在z里面,將它返回
}                            //我們的sum,從而打印輸出
int main()
{
    int a = 0;
    int b = 0;
    int sum = 0;
    printf("請輸入兩個整數(shù)\n");
    //輸入
    scanf("%d %d", &a, &b);
    //求和
    sum = Add(a, b);    //這里使用一個函數(shù)Add,將輸入的a,b放進函數(shù)Add中                                                  //然后設置一個sum變量來存放計算出的值
    //輸出
    printf("sum=%d\n", sum);

    return 0;
}

函數(shù)的特點就是簡化代碼,代碼復用

說到這里還有老鐵不理解的話我們來畫一個圖來展示一下:

函數(shù)的功能就好比一個工廠,我們只需要把原材料給工廠,然后通過工廠的加工來得到我們需要的東西

由上面的函數(shù)求和的例子來說明函數(shù)的一些基本組成

4.數(shù)組

要存儲1~10的數(shù)字,該怎么儲存呢?

數(shù)組從簡單方面理解就是一堆數(shù)字組合起來,但是C語言中有明確定義

4.1數(shù)組的定義:

數(shù)組:一組相同類型元素的集合

int arr[10] = {1,2,3,4,5,6,7,8,9,10};//定義一個整形數(shù)組,最多放10個元素
4.2數(shù)組的下標:
  • C語言規(guī)定:數(shù)組的每個元素都有一個下標,下標是從0開始的

int arr[10] = {1,2,3,4,5,6,7,8,9,10};
         //下標 0 1  2  3 4 5 6  7 8  9 
//假設n是元素個數(shù),那么它的下標的范圍是0~n-1
  • 使用下標的方式訪問元素

arr [//下標];

假設一個數(shù)組里面有10個元素,我們需要找到下標為5的元素

#includeint main()
{
    int arr[10] = { 1,2,3,4,5,6,7,8,9,10 };
    printf("%d\n", arr[5]);
    return 0;
}

我們可以很直觀的看到,我們打印下標為5的元素就可以得到6

4.3數(shù)組的使用:

當我們給定了一組數(shù)組,我們需要把這組數(shù)全部打印出來,我們需要如何做呢?

按照我們以前的方法,我們可以使用查找下標的方法依次將他們打印,但是非常麻煩

但是我們可以使用我們前面學過的while循環(huán),我們可以先找元素下標為0的元素,然后依次下標+1,從而循環(huán)打印出整個數(shù)組

#includeint main()
{
    int arr[10] = { 1,2,3,4,5,6,7,8,9,10 };
    int i = 0;              //這里設置一個循環(huán)變量
    while (i< 10)          //while循環(huán)開始:當i<10時,循環(huán)開始
    {
        printf("%d ", arr[i]);    //在這里剛剛進來的i是0,所以打印的下標為0的元素
        i++;                      //在這里i+1,每次進來都會加1,直到加到10
                                  //則不滿足whiel循環(huán)的條件則會跳出循環(huán)
    } 
    return 0;
}
5.操作符

關于操作符在初識C語言里只是簡單介紹,后面的文章會詳細介紹

5.1算數(shù)操作符:

+

-

*

/

%

//a+b         a-b          a*b          a/b          a%b

關于算數(shù)操作符,有幾點要注意:

%:這個是取模(取余)

當使用A%B時要注意,%兩邊都得是整數(shù)

//5%2=1 

當使用A/B時要注意,如果兩邊都為整數(shù),則計算出的結果是整數(shù),如果兩邊有一個是小數(shù),則計算出的結果是小數(shù)

//5/2 = 2
//5.0/2 = 2.5
//5.0/2.0 = 2.5
5.2移位操作符(移動的是二進制位):

>>

<<

后面會發(fā)布文章介紹

5.3位操作符(操作的是二進制位):

&

^

|

后面會發(fā)布文章介紹

5.4賦值操作符:

=

+=

-=

/=

*=

&=

|=

<<=

>>=

這里我們只講前面五個

= :這里是賦值的意思,就比如a=5,是把5賦值給a

+= :a += 5 這里的意思是給a加上5再賦值給a,比如原本a = 0,那么a+ =5之后a=5

-= 、*=、/=都是同樣的道理

5.5單目操作符:
  • 單目指的就是操作符兩邊只有一個操作數(shù)

!

邏輯反操作

-

負值

+

正值

&

取地址

sizeof

操作數(shù)的類型長度(以字節(jié)位單位)

~

對一個數(shù)的二進制位按位取反

--

分為前置、后置

++

分為前置、后置

*

間接訪問操作符(解引用操作符)

(類型)

強制轉換類型

在C語言中0表示假,非0表示真

在這里我們講一下sizeof和--、++

5.5.1sizeof:

sizeof:可以用來計算變量、類型所占空間的大小(以字節(jié)為單位)

#includeint main()
{
? ? int a=10;
? ? printf("%d\n",sizeof(a));
? ? printf("%d\n",sizeof(int));
? ? return 0;
}

計算出的結果都是4個字節(jié)

了解到這里我們可以計算出一個字符串里面有多少個字符

#includeint main()
{
    int arr[10] = { 1,2,3,4,5,6,7,8,9,10 };
    printf("%d\n", sizeof(arr));             //計算的是整個字符串的總的大小  40個字節(jié)
    printf("%d\n", sizeof(arr[0]));          //計算的是一個字符的大小

    int sz = sizeof(arr) / sizeof(arr[0]);   //計算出這個字符串里面有多少個字符
    printf("%d\n", sz);
    return 0;
}

我們再來了解一個前面提到過的知識:strlen

strlen是一個計算字符串長度的函數(shù),使用時要包含頭文件#include

#include#includeint main()
{
    char arr[] = "abcdef";
    printf("%d\n", strlen(arr)); //?
    printf("%d\n", sizeof(arr)); //?
    return 0;
}

那這里打印出來為什么是6、7呢?

是因為:

sizeof計算的是所占內(nèi)存空間的大小,不在乎內(nèi)存里面放的是什么,單位是字節(jié)

strlen統(tǒng)計的是\0之前的字符的個數(shù),所以不包含\0

在這個字符串里面有abcdef\0這7個字符,所以用strlen來統(tǒng)計時是6,不統(tǒng)計\0,而用sizeof來計算時,它不管這個字符串里面放的是什么,統(tǒng)統(tǒng)都計算,所以計算出來的大小是7.

5.5.2++、--:

++、--可以分為兩類:前置和后置

先來了解后置++:

后置++的意思就是先使用,后++

#includeint main()
{
    int a = 2;            //這里簡單解讀一下
    int c = 0;            
    c = a++;               //c=a;a=a++;
    printf("c=%d a=%d\n", c, a);
    return 0;
}

這里的a++類似于我們前面見到過的line++,就是在a的基礎上+1再賦值給a,這里的后置++就是先把a的值使用賦值給c,然后a再++賦值給a,所以c=2,a=3.

前置++:先++,再使用

#includeint main()
{
    int a = 2;
    int c = 0;
    c = ++a;           //c=a++,a=a++
    printf("c=%d a=%d\n", c, a);
    return 0;
}

前置++,先++,再使用,意思就是:先給a++,然后使用賦值給c,所以c=3,a=3.

前置++和前置--意思一致,后置++和后置--意思也一致。

5.6關系操作符:

>

用于測試“大于”

>=

用于測試“大于等于”

<

用于測試“小于”

<=

用于測試“小于等于”

==

用于測試“相等”

!=

用于測試“不相等”

注:要注意區(qū)分“==”和“=”,前者是相等,后者是賦值

5.7邏輯操作符:

&&

邏輯與(并且)

||

邏輯或(或者)

我們定義0~18歲為未成年,18~28歲為青年,28~45歲為中年,45歲以上為老年

我們可以用代碼來表示一下:

#includeint main()
{
    int age = 0;
    scanf("%d", &age);
    if (age >= 0 && age<= 18)         //邏輯與操作符:兩邊的條件同時滿足才可以執(zhí)行
    {
        printf("未成年\n");
    }
    else if (age >18 && age<= 28)
        printf("青年\n");
    else if (age >28 && age<= 45)
        printf("中年\n");
    else
        printf("老年\n");
    return 0;
}

邏輯與操作符類似于并且,A并且B

#includeint main()
{
    int num = 0;
    scanf("%d", &num);
    if (num == 5 || num == 10)   //邏輯或操作符:只要滿足兩邊任何一個條件便可以執(zhí)行
        printf("hehe\n");
    else
        printf("haha\n");
    return 0;
}

邏輯或操作符類似于或者,A或者B

5.8條件操作符:

exp1 ? exp2: exp3

簡單介紹這個操作符的意思:exp1成立嗎?,如果成立,則執(zhí)行exp2,如果不成立,則執(zhí)行exp3

這個也叫三目操作符

使用三目操作符來比較兩個數(shù)的大?。?/p>

#includeint main()
{
    int a = 0;
    int b = 0;
    scanf("%d %d", &a, &b);           //在輸入的時候兩個數(shù)中間要有空格
    printf("MAX= %d", a >b ? a : b); //如果a>b成立,則執(zhí)行a,如果不成立,則執(zhí)行b
    return 0;
}
5.9逗號表達式:

exp1, exp2, exp3, ..... expn

逗號表達式會從左向右依次計算,整個表達式的結果是最后一個表達式的結果

代碼演示:

#includeint main()
{
    int a = 3;
    int b = 5;
    int c = 0;
    int d = (a += 3, b -= a, c - 2);
    printf("%d\n", d);
    return 0;
}

我們來分析一下這個代碼:a+=3的意思是給a+3再賦值給a,所以a=3+3=6。b-=a的意思是給b-a再賦值給b,所以b=5-6=-1。c-2=-2,所以打印出的結果就是-2。

因為逗號表達式最后打印的是最后一個表達式的結果,那么我們是不是不用管前面的表達式,直接去計算最后一個表達式呢?

可不敢這樣去想,如果前面有一個表達式改變了最后一個表達式的值,那么還這樣計算就出現(xiàn)bug,我們來看一個代碼:

#includeint main()
{
    int a = 3;
    int b = 5;
    int c = 0;
    int d = (a += 3, b -= a, c = a + b, c - 2);
    printf("%d\n", d);
    return 0;
}

如果我們只計算最后一個表達式的結果:c-2的出的結果是-2,那可就錯了,因為前面有一個表達式改變了c的值,所以可不敢貿(mào)然去計算,如果從左向右依次計算:a+=3,所以a=6。b-=a,所以b=-1。c=a+b,所以c=5。c-2,所以最終結果c=3,這樣就對了。

5.10下標引用、函數(shù)調(diào)用、結構成員操作符:

[ ]

( )

.

->

我們這里只講前兩個

5.10.1下標引用操作符:

下標引用操作符在前面的數(shù)組的下標中提到過,我們在使用元素下標可以找到該元素時就采用的"[ ]"

#includeint main()
{
    char arr[10] = { 1,2,3,4,5,6,7,8 };//不完全初始化:設置的字符串里面一共有10個元素
                                          //但是我只寫了8個元素,剩下的元素默認初始化都是0
    printf("%d", arr[5]);            //下標引用,找下標為5的元素
    return 0;
}
5.10.2函數(shù)調(diào)用操作符:

在使用函數(shù)時需要用到"( )"

#include//包含頭文件可不敢忘記
#includeint main()
{
    int len = 0;
    len = strlen("abcd");
    printf("%d\n", len);
    return 0;
}

可以看到我們在使用strlen函數(shù)求這個字符串的長度時使用了“()”,在使用其他函數(shù)時也是同樣的道理。

本篇的分享到此為止,大家可以慢慢學習,最后感謝大家閱覽,如果有什么不足和疑問可以私信我或者打在品論區(qū),感謝大家!

你是否還在尋找穩(wěn)定的海外服務器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機房具備T級流量清洗系統(tǒng)配攻擊溯源,準確流量調(diào)度確保服務器高可用性,企業(yè)級服務器適合批量采購,新人活動首月15元起,快前往官網(wǎng)查看詳情吧

文章名稱:初識C語言:從0開始,由菜鳥變大牛(3)-創(chuàng)新互聯(lián)
網(wǎng)站路徑:http://jinyejixie.com/article24/gpjje.html

成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站排名、云服務器、網(wǎng)站策劃、搜索引擎優(yōu)化、網(wǎng)站設計軟件開發(fā)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉載內(nèi)容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)

外貿(mào)網(wǎng)站建設
泰顺县| 敦煌市| 兴海县| 卢氏县| 淮北市| 临洮县| 新龙县| 沈丘县| 漯河市| 安平县| 江陵县| 大厂| 长垣县| 五大连池市| 景德镇市| 静海县| 桐柏县| 独山县| 东台市| 茌平县| 丘北县| 翁牛特旗| 临沂市| 志丹县| 双江| 来凤县| 邹平县| 台山市| 石首市| 新野县| 赤峰市| 房产| 日土县| 华宁县| 常宁市| 鄄城县| 和平区| 博罗县| 蒙城县| 比如县| 宁国市|