欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

C語言基礎(chǔ)知識(shí)分享續(xù)篇

 更新時(shí)間:2023年01月24日 11:42:10   作者:玄鳥軒墨  
這篇文章主要介紹了C語言基礎(chǔ)知識(shí)分享續(xù)篇的相關(guān)資料,需要的朋友可以參考下

寫在前面

好了,現(xiàn)在我們開始C語言的第二個(gè)部分.今天我們需要看下面幾個(gè)知識(shí)點(diǎn),都是非常簡單的,我們主要認(rèn)識(shí)一下.

數(shù)組

我們知道一個(gè)一個(gè)屬性可以用一個(gè)類型去表示,那么我想問的是如果是一個(gè)屬性的多個(gè)呢?也就是多個(gè)一樣的東西,此時(shí)我們就要使用數(shù)組來進(jìn)行表示,所謂的數(shù)組就是存儲(chǔ)數(shù)據(jù)的容器,保證多個(gè)數(shù)據(jù)的數(shù)據(jù)類型要一致,C語言中給了數(shù)組的定義:一組相同類型元素的集合.

數(shù)組使用

我們想要存儲(chǔ)1~10這幾個(gè)數(shù)據(jù)我們應(yīng)該如何存儲(chǔ)?很簡單.

int arr[10] = {1,2,3,4,5,6,7,8,9,10};//定義一個(gè)整形數(shù)組,最多放10個(gè)元素?cái)?shù)組訪問

注意了,如果我們沒有在[]中具體元素的個(gè)數(shù),那么我們實(shí)際存儲(chǔ)元素的個(gè)數(shù)按照后面初始化的個(gè)數(shù)來進(jìn)行計(jì)算,如果給了實(shí)際元素的個(gè)數(shù),那么我們后面最多存儲(chǔ)元素就是規(guī)定的元素個(gè)數(shù).我們?nèi)绻L問數(shù)組的元素,那么我們就要依賴數(shù)組的下標(biāo),記住數(shù)組的下標(biāo)是從0開始的,這一點(diǎn)非常重要.

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;
}

初識(shí)C語言(下)_操作符

函數(shù)

所謂的函數(shù)我們可以稱之為是代碼的功能的集合,我們把程序不同的功能寫成一個(gè)個(gè)函數(shù),這樣我們后面是可以再其他地方重復(fù)調(diào)用的.其中main函數(shù)也是一個(gè)函數(shù).函數(shù)的基本結(jié)構(gòu)是

放回置 函數(shù)名(參數(shù)列表)
{
函數(shù)體
}

我們來實(shí)現(xiàn)一個(gè)打印1-10的函數(shù).

void Print()
{
for (int i = 0; i < 10; i++)
{
printf("%d ",i+1); // ??)--]-三字母詞
}
}

我們調(diào)用函數(shù)只需要用函數(shù)名和相關(guān)的參數(shù)就可以了.

int main()
{
Print();
return 0;
}

初識(shí)C語言(下)_數(shù)組_02

字符串

在C語言中用一對""括起來的字符我們稱之為字符串,就像"hello world".注意我們C語言是沒有字符串類型的,大家不要搞錯(cuò)了就行.

在C語言中字符串的末尾其實(shí)隱藏著一個(gè)'\0';y也就是只要你使用雙引號(hào)輸入一個(gè)字符串,它的末尾就是自動(dòng)攜帶一個(gè)'\0'來作為字符串的結(jié)束標(biāo)志,實(shí)際在內(nèi)存中,上面的字符串是這樣的“hello world\0"末尾帶了一個(gè)'\0'來作為結(jié)束標(biāo)志.我們驗(yàn)證一下.

#include <stdio.h>
int main()
{
char * str = "hello world";

return 0;
}

初識(shí)C語言(下)_數(shù)組_03

上面我們驗(yàn)證的還是不太清楚,這里我們再次看一個(gè)現(xiàn)象.

#include <stdio.h>
int main()
{
char arr1[] = { 'a', 'b', 'c', 'd' };
char arr2[] = { 'a', 'b', 'c', 'd','\0' };
char* arr3 = "abcd";
printf("arr1 %s\n", arr1);
printf("arr2 %s\n", arr2);
printf("arr3 %s\n", arr3);
return 0;
}

初識(shí)C語言(下)_操作符_04

也就是所謂的字符串我們可以這樣認(rèn)為,我們可以認(rèn)為他們是字符數(shù)組,但是字符數(shù)組最后我們一定要帶上一個(gè)'\0',注意我們是這么理解,實(shí)質(zhì)肯定有所不同,我們先不談,這涉及到其他的內(nèi)容.

strlen && sizeof

我們談到字符串和字符數(shù)組我們就不得不說一下strlen和sizeof得區(qū)別了,記住了它最大得一個(gè)區(qū)別,sizeof是關(guān)鍵字,strlen是函數(shù),這是本質(zhì)得不同.在功能呢上,sizeof計(jì)算是我們數(shù)組開辟得空間,它的單位是字節(jié),strlen是計(jì)算有效字符的個(gè)數(shù),所謂的有效字符是指'\0'之前的都是有效字符.

sizeof

我們先來測試一下sizeof關(guān)鍵字.

int main()
{
char arr1[] = { 'a', 'b', 'c', 'd' };
char arr2[] = { 'a', 'b', 'c', 'd', '\0' };
char arr3[10] = { 'a', 'b', 'c', 'd', '\0' };
printf("arr1 %d\n", sizeof(arr1));
printf("arr2 %d\n", sizeof(arr2));
printf("arr3 %d\n", sizeof(arr3));

return 0;
}

初識(shí)C語言(下)_字符串_05

這個(gè)我們已經(jīng)知道了,那么我們這里在和大家說一下sizeof的的用法,我們sizeof既可以計(jì)算類型的大小,也可以計(jì)算變量占據(jù)空間的大小.

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

初識(shí)C語言(下)_字符串_06

但是我們計(jì)算類型和計(jì)算變量是有一點(diǎn)區(qū)別的,計(jì)算變量我們可以不帶括號(hào).

int main()
{
int a = 0;

printf("a %d\n", sizeof a);

return 0;
}

初識(shí)C語言(下)_字符串_07

但是我們參數(shù)是類型的時(shí)候我們必須帶上括號(hào).

int main()
{
int a = 0;

printf("int %d\n", sizeof int);

return 0;
}

初識(shí)C語言(下)_字符串_08

strlen

下面我們開始用一下strlen函數(shù),這個(gè)是在標(biāo)準(zhǔn)庫string.h中的,我們使用前需要引入頭文件.strlen函數(shù)就是為了尋找字符'\0',知道知道'\0',否則我們會(huì)一直計(jì)數(shù).

int main()
{
char arr1[] = { 'a', 'b', 'c', 'd' };
char arr2[] = { 'a', 'b', 'c', 'd', '\0' };
char* arr3 = "abcd";
printf("arr1 %d\n", strlen(arr1));
printf("arr2 %d\n", strlen(arr2));
printf("arr3 %d\n", strlen(arr3));

return 0;
}

初識(shí)C語言(下)_操作符_09

轉(zhuǎn)義字符

假如我們要在屏幕上打印一個(gè)目錄:c:\code\test.c.我們該如何寫代碼,是不是按部就班的直接復(fù)制粘貼.看一下現(xiàn)象.

int main()
{

printf("%s\n", "c:\code\test.c");

return 0;
}

初識(shí)C語言(下)_數(shù)組_10

此時(shí)我們就會(huì)發(fā)現(xiàn)和我們想的有點(diǎn)不太一樣.是我們想錯(cuò)了嗎?不是的,是大家缺了一個(gè)知識(shí)點(diǎn).在C語言中,為了我們數(shù)據(jù)的打印更加優(yōu)美,此時(shí)添加了很多的轉(zhuǎn)義字符.什么是轉(zhuǎn)義字符,這個(gè)就是改變了原本意思的字符.今天我們用一下常見的轉(zhuǎn)義字符.

轉(zhuǎn)義字符

說明

\?

在書寫連續(xù)多個(gè)問號(hào)時(shí)使用,防止他們被解析成三字母詞

\\'

用于表示字符常量'

\“

用于表示一個(gè)字符串內(nèi)部的雙引號(hào)

\\

用于表示一個(gè)反斜杠,防止它被解釋為一個(gè)轉(zhuǎn)義序列符。

\a

警告字符,蜂鳴

\b

退格符

\f

進(jìn)紙符

\n

換行

\r

回車

\t

水平制表符

\ddd

ddd表示1~3個(gè)八進(jìn)制的數(shù)字。 如: \130 X

\xdd

dd表示2個(gè)十六進(jìn)制數(shù)字。 如: \x30 0

下面我們認(rèn)識(shí)一下三字母詞

int main()
{
printf("(are you ok??)"); // ??)--]-三字母詞
return 0;
}

初識(shí)C語言(下)_字符串_11

在一些老的編譯器??)會(huì)被解析成],不過現(xiàn)在的編譯器一般不這么干了,我們了解就可了.

我們說一下常見的一些轉(zhuǎn)義字符,其余的就不談了,有興趣的自己可以查一查驗(yàn)證一下就可以了,很簡單的.

\\\ 如果我們想要打印 字符'\\' ,在\的前面再加一個(gè)\就行了\ddd 這里面ddd表示的是3個(gè)8進(jìn)制數(shù),可以使用1-3個(gè)8進(jìn)制數(shù)\xdd dd表示的兩個(gè)十六進(jìn)制數(shù)

下面我們來練習(xí)一個(gè)習(xí)題,我們求一下字符串的長度

#include<stdio.h>
#include <string.h>
int main()
{
char* str = "c:\test\328\test.c";
printf("%d\n", strlen(str));
return 0;
}

初識(shí)C語言(下)_字符串_12

這個(gè)字符串的長度是4,就是下面的“c : \t e s t \32 8 \t e s t . c”

操作符

這里只是認(rèn)識(shí),后面的再說吧.

算數(shù)操作符: + - * / %邏輯操作符: && ||移位操作符: >> <<賦值操作符: = += -= *= /= &= ^= |= >>= <<=位操作符: & ^ |條件操作符: exp1 ? exp2 : exp3逗號(hào)表達(dá)式: exp1, exp2, exp3, …expN

下面我們只說一下逗號(hào)表達(dá)式,所謂的逗號(hào)表達(dá)式就是我們根據(jù)從左到右的規(guī)則依次往后面計(jì)算,該賦值的賦值,該替換的替換.

int main()
{
int a = 0;
(a = 2 * 6, a * 3, a = a + 5);
printf("a = %d\n", a);
return 0;
}

初識(shí)C語言(下)_字符串_13

選擇語句

所謂的選擇語句就是我們在眾多的選項(xiàng)中選擇一個(gè)符合調(diào)價(jià)的,我們這里有下面兩個(gè)類別.

if else

我們先用一下你就明白了,很簡單.

int main()
{
int coding = 0;
printf("你會(huì)去敲代碼嗎?(選擇1 or 0):>");
scanf("%d", &coding);
if (coding == 1)
{
printf("堅(jiān)持,你會(huì)有好offer\n");
}
else
{
printf("放棄,回家賣紅薯\n");
}
return 0;
}

初識(shí)C語言(下)_操作符_14

此時(shí)我們就明白了他們的含義,如果我們符合條件,那么我們就執(zhí)行該條件下的代碼.那么我想問一下我們只有這兩個(gè)個(gè)條件嗎?不是的,我們也是可以田間else if 的.

int main()
{
int coding = 0;
printf("你會(huì)去敲代碼嗎?(選擇1 or 0 or -1):>");
scanf("%d", &coding);
if (coding == 1)
{
printf("堅(jiān)持,你會(huì)有好offer\n");
}
else if (coding == -1)
{
printf("如果你是百萬富翁當(dāng)我沒說話\n");
}
else
{
printf("放棄,回家賣紅薯\n");
}
return 0;
}

初識(shí)C語言(下)_數(shù)組_15

同時(shí)我們else if和else都是可以省略的,只保留if,但是我們絕對不可以只讓else或者是else的個(gè)數(shù)多余if.注意else是和它上面最近的if進(jìn)行匹配的,這里我就不詳細(xì)的說了,你一驗(yàn)證就明白了.

switch

除了if else選擇之外我們還是有另外的一個(gè)語法的,這里也是很簡單的.

int main()
{
int a = 1;
switch (a)
{

case 1:
printf("%s\n","YES");
break;
case 0:
printf("%s\n", "NO");
break;
default:
printf("%s\n", "選擇錯(cuò)誤");
break;
}
return 0;
}

初識(shí)C語言(下)_字符串_16

switch()的括號(hào)的內(nèi)部元素類型 字節(jié)<=4的整型(char int byte short)每一個(gè)case后面,除非是特殊業(yè)務(wù)要求,要帶上break;

初識(shí)C語言(下)_數(shù)組_17

int main()
{
int a = 1;
switch (a)
{

case 1:
printf("%s\n", "YES");
case 0:
printf("%s\n", "NO");
default:
printf("%s\n", "選擇錯(cuò)誤");
}
return 0;
}

初識(shí)C語言(下)_字符串_18

循環(huán)語句

我們剛剛說了選擇語句,但是這個(gè)語句只會(huì)執(zhí)行一次。由于我們發(fā)現(xiàn)生活中很多的實(shí)際的例子是:同一件事情我們需要完成很多次。那我們怎么做呢?這里就需要循環(huán)語句了,這里的循環(huán)語句三個(gè)。

  • for
  • while
  • do while

for

這個(gè)格式是for(表達(dá)式1; 表達(dá)式2; 表達(dá)式3),也是很好用的

表達(dá)式1 為初始化部分,用于初始化循環(huán)變量的。表達(dá)式2 為條件判斷部分,用于判斷循環(huán)時(shí)候終止。表達(dá)式3 為調(diào)整部分,用于循環(huán)條件的調(diào)整。

int main()
{
for (int i = 0; i < 10; i++)
{

printf("%d ", (i + 1));
}
return 0;
}

初識(shí)C語言(下)_數(shù)組_19

這里我們想和大家說一個(gè)結(jié)論,條件判斷部分要比調(diào)整部分多上一次,有的選擇題會(huì)進(jìn)行考察.

while

我們也是使用它進(jìn)行打印1-到10的數(shù)字,這個(gè)也是非常簡單的.

int main()
{
int i = 0;
while (i<10)
{

printf("%d ", (i + 1));
i++;
}
return 0;
}

初識(shí)C語言(下)_操作符_20

do while

如果說while語句是先進(jìn)行條件判斷,那么dowhile就是先執(zhí)行代碼,后面再進(jìn)行條件判斷.

int main()
{
int i = 0;
do{
printf("i: %d\n",i);

} while (i > 0);

return 0;
}

初識(shí)C語言(下)_字符串_21

跳出語句

跳出語句算是對循環(huán)語句做一個(gè)補(bǔ)充,我們知道,任何一個(gè)人都有可能再滿足一定情況下結(jié)束循環(huán),有的人會(huì)等到條件完成后結(jié)束,有的人可能中途有添加了另外的條件,此時(shí)我們下面的兩個(gè)關(guān)鍵子都是為了他們準(zhǔn)備的.

contine

contine關(guān)鍵字是跳出本次循環(huán),繼續(xù)下一次的循環(huán).

int main()
{
int i = 0;
while (i < 10)
{
i++;
if (i == 5)
{
continue;
}
printf("i: %d\n", i);

}

return 0;
}

初識(shí)C語言(下)_字符串_22

break

break語句更加直接,它是直接結(jié)束循環(huán).

int main()
{
int i = 0;
while (i < 10)
{
i++;
if (i == 5)
{
break;
}
printf("i: %d\n", i);

}

return 0;
}

初識(shí)C語言(下)_數(shù)組_23

指針

下面我們談C語言最重要的也是最讓人難以理解的一個(gè)內(nèi)容,這我們在后面會(huì)重點(diǎn)談.大家記住,所謂的指針我們就認(rèn)為它是一個(gè)地址,它是指向一個(gè)事物的標(biāo)志,這就是指針的簡單理解.根據(jù)計(jì)算機(jī)主線的根數(shù)不同,指針分為4字節(jié)和8字節(jié),其中32為機(jī)器是4字節(jié),64位是8字節(jié).

int main()
{

int a = 10;
int * p = &a; // p 就是一個(gè)指針
printf("%d\n", sizeof(p));
return 0;
}

初識(shí)C語言(下)_數(shù)組_24

那么我想問的是我們拿到了a的地址,請問我們?nèi)绾慰创齛的內(nèi)容呢?這里可以使用解引用,解引用就是根據(jù)地址找到那一片的空間.

int main()
{

int a = 10;
int * p = &a;
printf("a = %d\n", *p);
*p = 20;
printf("a = %d\n", a);

return 0;
}

初識(shí)C語言(下)_操作符_25

這里我想和大家說的,任何指針類型的大小只要機(jī)器的位數(shù)確定,那么我們字節(jié)數(shù)也就確定了.

struct Student
{
char name[100]; // 姓名
char sex[10];// 性別
int age; // 年齡
};

int main()
{
printf("char %d\n", sizeof(char*));

printf("int %d\n", sizeof(int*));
printf("double %d\n", sizeof(double*));
printf("struct Student %d\n", sizeof(struct Student*));
return 0;
}

初識(shí)C語言(下)_操作符_26

自定義類型

上面我們已經(jīng)知道了自定義類型,也就是int之類的.那么我想問的是如果我們想要描述學(xué)生這個(gè)屬性,我們應(yīng)該怎么辦?此時(shí)我們知道用自定義類型是可以描述的,但是我們有點(diǎn)麻煩,這里C語言提供了一個(gè)關(guān)鍵字,我們可以使用它來自己定義類型.

struct

這個(gè)一個(gè)結(jié)構(gòu)體關(guān)鍵字,我們可以這么做.

struct Student
{
char name[100]; // 姓名
char sex[10];// 性別
int age; // 年齡
};

這就是一個(gè)結(jié)構(gòu)體,也就是下面的格式

struct 結(jié)構(gòu)體名字
{
// 成員屬性
};

這里我們需要記住的是struct 結(jié)構(gòu)體名字才是結(jié)構(gòu)體的類型,大家不要記混了.這里給大家使用一下.

struct Student
{
char name[100]; // 姓名
char sex[10];// 性別
int age; // 年齡
};
int main()
{

struct Student stu = { "張三", "男", 18};
printf("%s %s %d\n", stu.name, stu.sex, stu.age);
return 0;
}

初識(shí)C語言(下)_操作符_27

以上就是C語言基礎(chǔ)知識(shí)分享續(xù)篇的詳細(xì)內(nèi)容,更多關(guān)于C語言基礎(chǔ)的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • C經(jīng)典算法之二分查找法

    C經(jīng)典算法之二分查找法

    這篇文章主要介紹了C經(jīng)典算法之二分查找法的相關(guān)資料,這里提供兩種方法幫助大家實(shí)現(xiàn)這樣的功能,需要的朋友可以參考下
    2017-10-10
  • C語言從基礎(chǔ)到進(jìn)階全面講解數(shù)組

    C語言從基礎(chǔ)到進(jìn)階全面講解數(shù)組

    數(shù)組是一組有序的數(shù)據(jù)的集合,數(shù)組中元素類型相同,由數(shù)組名和下標(biāo)唯一地確定,數(shù)組中數(shù)據(jù)不僅數(shù)據(jù)類型相同,而且在計(jì)算機(jī)內(nèi)存里連續(xù)存放,地址編號(hào)最低的存儲(chǔ)單元存放數(shù)組的起始元素,地址編號(hào)最高的存儲(chǔ)單元存放數(shù)組的最后一個(gè)元素
    2022-05-05
  • C++ 輕量級(jí)對象JSON序列化實(shí)現(xiàn)詳情

    C++ 輕量級(jí)對象JSON序列化實(shí)現(xiàn)詳情

    本文以jsoncpp庫為基礎(chǔ),設(shè)計(jì)這樣一個(gè)可以支持一個(gè)函數(shù) 可以一行代碼 unmarshal /marshal 對象,需要的朋友小伙伴可以參考以下
    2021-09-09
  • C++超集C++/CLI模塊的基本用法

    C++超集C++/CLI模塊的基本用法

    這篇文章介紹了C++超集C++/CLI模塊的基本用法,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-07-07
  • C++如何去除cpp文件的注釋詳解

    C++如何去除cpp文件的注釋詳解

    在日常工作中,我們會(huì)給c/c++代碼寫上一些注釋,但是往往為了保持最終的代碼盡可能小,我們需要?jiǎng)h除注釋,手動(dòng)刪除太緩慢了,下面這篇文章主要給大家介紹了關(guān)于C++如何去除cpp文件注釋的相關(guān)資料,需要的朋友可以參考下
    2022-09-09
  • 聊一聊OpenCV相機(jī)標(biāo)定

    聊一聊OpenCV相機(jī)標(biāo)定

    這篇文章主要為大家詳細(xì)介紹了OpenCV相機(jī)標(biāo)定的相關(guān)資料,即獲得相機(jī)參數(shù)的過程,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-01-01
  • C++數(shù)據(jù)結(jié)構(gòu)哈希表詳解

    C++數(shù)據(jù)結(jié)構(gòu)哈希表詳解

    C++標(biāo)準(zhǔn)庫中使用的unordered_map底層實(shí)現(xiàn)是哈希表,下面這篇文章主要給大家介紹了關(guān)于C++中使用哈希表(unordered_map)的一些常用操作方法,需要的朋友可以參考下
    2022-07-07
  • 有關(guān)C++中隨機(jī)函數(shù)rand() 和srand() 的用法詳解

    有關(guān)C++中隨機(jī)函數(shù)rand() 和srand() 的用法詳解

    下面小編就為大家?guī)硪黄嘘P(guān)C++中隨機(jī)函數(shù)rand() 和srand() 的用法詳解。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-01-01
  • C++List容器常用函數(shù)接口刨析

    C++List容器常用函數(shù)接口刨析

    最近我學(xué)習(xí)了C++中的STL庫中的list容器,對于常用容器,我們不僅要會(huì)使用其常用的函數(shù)接口,我們還有明白這些接口在其底層是如何實(shí)現(xiàn)的。所以特意整理出來一篇博客供我們學(xué)習(xí)
    2022-08-08
  • 利用QT實(shí)現(xiàn)UDP聊天小程序

    利用QT實(shí)現(xiàn)UDP聊天小程序

    這篇文章主要為大家詳細(xì)介紹了潤滑利用QT的UDP技術(shù),實(shí)現(xiàn)兩個(gè)QT程序之間的聊天程序。文中的示例代碼講解詳細(xì),感興趣的小伙伴可以學(xué)習(xí)一下
    2022-11-11

最新評論