/*
常量的定義方式
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.基本命令...