C ,C語言語法基礎學習隨筆

2021-10-14 03:43:24 字數 4767 閱讀 3682

/*

常量的定義方式

1、#define 巨集常量

2、const 修飾的變數

*//*

關鍵字識別符號命名規則

1、識別符號不能是關鍵字

2、識別符號只能由字母、數字和下劃線組成

3、識別符號第乙個字元只能是字母或下劃線

4、識別符號是區分大小寫的

建議:給變數起名的時候,最好能見名知意

*//*

sizeof 關鍵字

語法: sizeof(資料型別/變數)

*//*

建立變數語法: 資料型別 變數名 = 變數初始值

資料型別存在的意義:

給變數分配合適的記憶體空間

整型short 2位元組 (15

int 4位元組 (31

long win 4位元組,linux 32位 4位元組 64 位 8位元組 (31

long long 8位元組 (62

實型(浮點型)

float 4位元組 float f1 = 3.14f; 小數預設是雙精度,加個f代表單精度,減少轉換

double 8位元組

預設情況下,輸出乙個小數會輸出六位小數

科學計數法 float f2 = 3e2; 3 * 10 ^2

字元型char 1個位元組

作用:字元型變數用於顯示單個字元

語法:char ch = 'a';

注意1、在顯示字元型變數時,用單引號將字元括起來,不要使用雙引號 char a = "s"; 錯誤

注意2、單引號只能有乙個字元,不可以是字串 char a = 'sddjjd" 錯誤

字元型變數對應ascii編碼 (int)ch

字串型

作用:用於表示一串字元

1、c風格字串: char 變數名 = "字串常量"

2、c++風格字串:string 變數名 = "字串常量" 標頭檔案

布林型別bool

true 1 1個位元組

false 0 1個位元組

bool flag = true;

轉義字元

換行符 \n

反斜槓 \\

水平製表符 \t 佔八個字元的位置,整齊的輸出資料

資料的輸入

cincin >> 變數;

*//*

運算子1、算術運算子

正負 加減乘除 取模 前置遞增 後置遞增 前置遞減 後置遞減

前置後置的區別

前置遞增 先讓變數+1,在進行表示式運算

後置遞增 先進行表示式運算,在進行+1

2、賦值運算

3、比較運算子

4、邏輯運算子

非 ! 與 && 或 ||

*//*

選擇結構

單行 多行 多條件

if else if

else

巢狀if語句

三目運算子

語法:表示式1 ?表示式2:表示式3;

返回的是變數

switch語句 表示式型別只能是整型或字元,不能是區間

語法:switch(表示式)

while迴圈語句

語法:while(迴圈條件){}

dowhile(迴圈條件);

for迴圈語句

巢狀迴圈

跳轉語句 break

continue語句

goto語句 可以跳轉到標記處

語法:goto flag;

.....

flag:

......

*//*

一維陣列:

資料型別 陣列名 [陣列長度]; 定義陣列時,必須要有乙個初始長度

資料型別 陣列名 [陣列長度] = ; 如果沒有全部賦值,會用0來填充

資料型別 陣列名 = ;

特點: 放在連續的記憶體空間中

陣列中每個元素都是相同的資料型別

一維陣列名的用途:

1、可以統計整個陣列在記憶體中的長度; sizeof(arr) 陣列長度 sizeof(arr[0]) 元素長度

2、可以獲取陣列在記憶體中的首位址。 arr = &arr[0]

二維陣列:

資料型別 陣列名[行數][列數];

資料型別 陣列名[行數][列數] = ,{},{}};

資料型別 陣列名[行數][列數] = ;

資料型別 陣列名[列數] = ;

二維陣列名稱用途:

1、可以檢視占用記憶體的大小; sizeof(arr) 陣列長度 sizeof(arr[0]) 第一行占用空間 sizeof(arr[0][0]) 乙個資料占用的空間

2、可以檢視二位陣列的首位址。 (int)arr = (int)arr[0] = (int)arr[0][0]

*//*

函式: 1、返回值型別

2、函式名

3、引數列表

4、函式體語句

5、return 表示式

語法: 返回值型別 函式名 引數列表

函式定義時的引數時形參

函式呼叫時的引數是實參

呼叫時,實參傳遞給了形參

當值傳遞的時候,如果形參改變,不會影響到實參

無參無返

有參無返

無參有返

有參有返

定義只能有一次

函式的宣告:

*//*

函式的分檔案編寫

1、建立.h字尾名的標頭檔案

2、建立.cpp字尾名的原始檔

3、在標頭檔案中寫函式的宣告

4、在原始檔中寫函式的定義

*//*

指標:指標的作用:可以通過指標間接訪問記憶體

記憶體編號是從0開始的,一般用是十六進製制數字表示

可以利用指標變數儲存位址

定義乙個指標:

資料型別 * 指標變數名:

int * p;

p = &a;

指標占用空間大小:32位佔4個位元組 64位佔8個位元組 sizeof(int *);

空指標和野指標:

空指標:指標變數指向記憶體中編號為0的空間

用途:初始化指標變數

int *p = null;

空指標指向的記憶體是不可以訪問的

0~255是系統占用記憶體,因此不可以訪問

野指標:指標變數指向非法的記憶體空間

int *p = (int *)0x2020;

cout << *p << endl; //錯誤,不能訪問

常量指標

const修飾指標

const int *p = &a;

特點:指標指向可以改,但是指標指向的值不可以改

指標常量

int * const p =&a;

特點:指標指向的不可以改,指標指向的值可以改

const既修飾指標,又修飾常量

const int * const p = &a;

特點:都不可以更改

指標和陣列:int *p = arr; p++;

指標和函式:

*//*

結構體結構體基本概念:結構體屬於使用者自定義的資料型別,允許使用者儲存不同的資料型別。

語法:struct 結構體名;

結構體建立變數方式:

1、struct 結構體名 變數名

2、struct 結構體名 變數名 =

3、定義結構體時,順便建立變數

struct student

s3;struct student s1;

struct student s2 = ;

結構體陣列:

作用 :將自定義的結構體放入到陣列中方便維護

語法:struct 結構體名 陣列名[元素個數] = ,{},...{}}

struct student stuarray[3] = ,,};

stuarray[2].name = "san";

結構體指標:

作用:通過指標訪問結構體中的成員

使用操作符 -> 可以通過結構體指標訪問結構體屬性

struct student s2 = ;

struct student *p = &s2;

cout << p -> name << p -> age << p -> score << endl;

結構體巢狀結構體:

作用:結構體中可以是另乙個結構體

struct teacher

;teacher t;

t.id = 10000;

t.stu.name = "王」;

t.stu.score = 100;

結構體做函式引數:

作用:將結構體作為引數向函式傳遞

傳遞方式:

值傳遞位址傳遞

struct student

s3;值傳遞:

void printstudent(struct student s)

printstudent(s3); //複製乙個副本,占用記憶體大小為結構體大小

voud printstudent(struct student *p)

printstudent(&s); //占用記憶體大小為指標所佔的大小,始終為4個位元組

結構體中const使用場景:

作用:防止誤操作

*******將函式中的形參改為指標,可以減少記憶體空間,而不會賦值新的副本出來*********

voud printstudent(const struct student *p) //一旦有修改的操作,就會報錯,防止誤操作

*/

go語言語法基礎

1.go標記 go 程式可以由多個標記組成,可以是關鍵字,識別符號,常量,字串,符號 如 fmt.println hello world 2.行分隔符 在 go 程式中,一行代表乙個語句結束。3.注釋 注釋不會被編譯,每乙個包應該有相關注釋。單行注釋 多行注釋 4.識別符號 識別符號用來命名變數 型...

C語言語法基礎考試

c語言語法基礎考試 第2輪 學員姓名 試卷說明 1 本試卷共 25題,部分來自 intel 微軟 ti等公司的面試題,其餘出自平時基礎課程。2 本試卷主要目的是考查對 c語言本身的理解程式,而非演算法測試。3 所有題目均需相關說明,yes no 型回答均不得分。4 從實際專案開發的角度回答問題,切忌...

R語言語法基礎(一)

r是一套完整的資料處理 計算和製圖軟體系統。其功能包括 資料儲存和處理系統 陣列運算工具 其向量 矩陣運算方面功能尤其強大 完整連貫的統計分析工具 優秀的統計製圖功能 簡便而強大的程式語言 可操縱資料的輸入和輸出,可實現分支 迴圈,使用者可自定義功能。下面我簡單介紹一下r語言的基本語法 1.基本命令...