亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

C語言基礎知識分享續(xù)篇

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

寫在前面

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

數組

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

數組使用

我們想要存儲1~10這幾個數據我們應該如何存儲?很簡單.

int arr[10] = {1,2,3,4,5,6,7,8,9,10};//定義一個整形數組,最多放10個元素數組訪問

注意了,如果我們沒有在[]中具體元素的個數,那么我們實際存儲元素的個數按照后面初始化的個數來進行計算,如果給了實際元素的個數,那么我們后面最多存儲元素就是規(guī)定的元素個數.我們如果訪問數組的元素,那么我們就要依賴數組的下標,記住數組的下標是從0開始的,這一點非常重要.

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

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

函數

所謂的函數我們可以稱之為是代碼的功能的集合,我們把程序不同的功能寫成一個個函數,這樣我們后面是可以再其他地方重復調用的.其中main函數也是一個函數.函數的基本結構是

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

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

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

我們調用函數只需要用函數名和相關的參數就可以了.

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

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

字符串

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

在C語言中字符串的末尾其實隱藏著一個'\0';y也就是只要你使用雙引號輸入一個字符串,它的末尾就是自動攜帶一個'\0'來作為字符串的結束標志,實際在內存中,上面的字符串是這樣的“hello world\0"末尾帶了一個'\0'來作為結束標志.我們驗證一下.

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

return 0;
}

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

上面我們驗證的還是不太清楚,這里我們再次看一個現(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;
}

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

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

strlen && sizeof

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

sizeof

我們先來測試一下sizeof關鍵字.

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

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

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

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

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

但是我們計算類型和計算變量是有一點區(qū)別的,計算變量我們可以不帶括號.

int main()
{
int a = 0;

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

return 0;
}

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

但是我們參數是類型的時候我們必須帶上括號.

int main()
{
int a = 0;

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

return 0;
}

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

strlen

下面我們開始用一下strlen函數,這個是在標準庫string.h中的,我們使用前需要引入頭文件.strlen函數就是為了尋找字符'\0',知道知道'\0',否則我們會一直計數.

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

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

轉義字符

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

int main()
{

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

return 0;
}

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

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

轉義字符

說明

\?

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

\\'

用于表示字符常量'

\“

用于表示一個字符串內部的雙引號

\\

用于表示一個反斜杠,防止它被解釋為一個轉義序列符。

\a

警告字符,蜂鳴

\b

退格符

\f

進紙符

\n

換行

\r

回車

\t

水平制表符

\ddd

ddd表示1~3個八進制的數字。 如: \130 X

\xdd

dd表示2個十六進制數字。 如: \x30 0

下面我們認識一下三字母詞

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

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

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

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

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

下面我們來練習一個習題,我們求一下字符串的長度

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

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

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

操作符

這里只是認識,后面的再說吧.

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

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

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

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

選擇語句

所謂的選擇語句就是我們在眾多的選項中選擇一個符合調價的,我們這里有下面兩個類別.

if else

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

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

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

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

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

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

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

switch

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

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", "選擇錯誤");
break;
}
return 0;
}

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

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

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

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

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

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

循環(huán)語句

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

  • for
  • while
  • do while

for

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

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

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

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

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

這里我們想和大家說一個結論,條件判斷部分要比調整部分多上一次,有的選擇題會進行考察.

while

我們也是使用它進行打印1-到10的數字,這個也是非常簡單的.

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

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

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

do while

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

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

} while (i > 0);

return 0;
}

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

跳出語句

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

contine

contine關鍵字是跳出本次循環(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;
}

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

break

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

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

}

return 0;
}

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

指針

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

int main()
{

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

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

那么我想問的是我們拿到了a的地址,請問我們如何看待a的內容呢?這里可以使用解引用,解引用就是根據地址找到那一片的空間.

int main()
{

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

return 0;
}

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

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

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

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

自定義類型

上面我們已經知道了自定義類型,也就是int之類的.那么我想問的是如果我們想要描述學生這個屬性,我們應該怎么辦?此時我們知道用自定義類型是可以描述的,但是我們有點麻煩,這里C語言提供了一個關鍵字,我們可以使用它來自己定義類型.

struct

這個一個結構體關鍵字,我們可以這么做.

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

這就是一個結構體,也就是下面的格式

struct 結構體名字
{
// 成員屬性
};

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

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

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

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

相關文章

  • C經典算法之二分查找法

    C經典算法之二分查找法

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

    C語言從基礎到進階全面講解數組

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

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

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

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

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

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

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

    聊一聊OpenCV相機標定

    這篇文章主要為大家詳細介紹了OpenCV相機標定的相關資料,即獲得相機參數的過程,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-01-01
  • C++數據結構哈希表詳解

    C++數據結構哈希表詳解

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

    有關C++中隨機函數rand() 和srand() 的用法詳解

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

    C++List容器常用函數接口刨析

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

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

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

最新評論