1.基本資料型別
整型int
整數,在目前絕大多數機器上佔4個位元組。tc環境中是2個位元組
單精度實型float
單精度浮點數,一般是4個位元組長
雙精度實型double
雙精度浮點數,一般是8個位元組長
字元型char
字元,一般是1個位元組長
用來表示256個ascii字元,或者0~255的整數
列舉型enum
2.const,volatile修飾變數的時候表示什麼意思?
const修飾唯讀變數,不能通過變數的值去修改對應記憶體的資料;volatile是防止編譯時被優化
3.常量與變數
常量是一種在程式中保持固定型別和固定值的資料。編譯系統從資料形式上可以區分(除列舉型別外)。常量分為:
(1)整型常量(2)實型常量(3)字元常量(4)字串常量(5)列舉常量
變數是在程式執行過程中可以改變。
4.轉義字元:\n表示換行,\t表示水平製表
5.字元型資料:c規定:在每乙個字串常量的結尾加乙個"字串結束標誌",以便系統據此判斷字串是否結束。c規定以字元『\0』作為字串結束標誌。
6.各類數值型資料間的混合運算:
整型(包括int,short,long)、浮點型(包括float,double)可以混合運算。在進行運算時,不同型別的資料要先轉換成同一型別,然後進行運算.
(1)在進行賦值操作時,會發生型別轉換(2)將取值範圍小的型別轉為取值範圍大的型別是安全的,反之是不安全的
如果大型別的值在小型別能容納的範圍之內,則平安無事,但是,浮點數轉為整數,會丟失小數部分,非四捨五入;反之,轉換後的結果必然是錯誤的,具體結果與機器和實現方式有關。避免如此使用,好的編譯器會發出警告。
7.算術運算子
c的運算子有以下幾類:
(1)算術運算子 (+ - * / %) (2)關係運算子 (> < == >= <= !=) (3)邏輯運算子 (! && ||)
(4)位運算子 (<< >> ~ | ∧ &) (5)賦值運算子 (=及其擴充套件賦值運算子) (6)條件運算子 (?:)
(7)逗號運算子 (,) (8)指標運算子 (*和&) (9)求位元組數運算子(sizeof) (10)強制型別轉換運算子( (型別) )
(11)分量運算子(.->) (12)下標運算子([ ]) (13)其他 (如函式呼叫運算子())
8.makefile(編譯工程)
target : depengency
( tab 字元) command
例項
第一步.
vim makefile
第二步.
hello : hello.o
(tab 鍵 空4格)
gcc hello.o -o hello
hello.o : hello,c
(tab gcc -c hello.c -o hello.o) //可刪,隱含規則
<=>
target = hello
object = hello.o, print.o
$(target) :$(object)
(tab) gcc
$(object) -o $(target) //只有 command 需要縮排
$(object) : hello.c
print.o : print.c
第三步.make
print.c
#include
void print(char *s)
make clean //清除檔案
例項clean :
(tab) rm *.o hello //清除 所有 .o
檔案 以及hello檔案
.phony :clean //防止存在同名 clean 檔案
9.gdb
gcc test.c -o test -g //加上 -g 可使用除錯工具
gdb test // gdb + 檔名
l // list 列出10行 // 一次顯示10行 ,l + n 從 n 行顯示
b // break b 17 //17 行設定斷點 b main // 在main 處設定斷點
info b // 查詢斷點
delete n // 刪除第 n 個斷點
r // run 執行
n // next 下一行 // 不進入函式
s // step 下一步 // 可進入函式執行
c // continue 繼續
return // 返回 在函式中可使用,從當前函式返回
q // 退出
10.shell // 命令解析器 .sh // 指令碼
#!/bin/sh //命令的集合
tmp = "hello"
echo (輸出) echo "hello" > a // 覆蓋 >> //追加
echo $
mkdir $1 // 建立第乙個引數的同名目錄
./shell.sh 1 2 3 //追加引數1 2 3(命令列引數)
#在指令碼內為注釋符號 cat + 檔案 // 顯示
for dir(變數) in $1 $2 $3 $4 $5 // 命令後+ 空格 do
mkdir
$dir
cd$dir
touch
$dir
echo "hello $dir" >
$dir
cd ..
done
注意: 賦值『=』,兩邊都不能空格,否則不變色,會有報錯
path.sh //判斷所給 是檔案還是目錄
#! /bin/bash
path = "/home/155/shell/test.sh" || 空格 一定要空
if [ || -d $path || ]; || then
echo "dir"
elif [ || -f $path || ]; || then
echo "file" fi
if [ || -z $path || ]; || then
echo "error"
exit fi
#! /bin/sh
read key (c 內的scanf,從鍵盤輸入)
case "$" in
[ a - z ] ) echo "upperletter" ;;
[ a - z ] ) echo "lowerletter" ;;
[ 0 - 9 ] ) echo "number" ;;
* ) echo "error" ;;
esac
注意 : shell 與 c有差別 可用 『ecxport lang c』進行修改
C語言呼叫SHELL指令碼
在linux 環境下shell指令碼具有非常強大的功能!使用shell可以很方便的使用和管理linux系統,最近學習了一點shell知識,所以一直在 想要是可以在c c 中呼叫shell指令碼那該有多好啊!因為使用c c 要幾百行 才能搞定的!使用shell只要短短十幾行就可以輕鬆搞定!includ...
C語言筆記(C )
結構體,類在定義時沒分配空間,用其定義變數時才會分配空間,所以c語言在的結構體不用有靜態型別,因為靜態型別在資料段,而如果在函式用用結構體定義變數,這變數在棧中,這樣就衝突了,但在c 中有相應的機制處理些問題。c 的cin.get 不讀取緩衝區中的回車字元,而cin.getline 將緩衝區中的回來...
C語言 C語言複習筆記
為什麼要學c語言?1972年,美國貝爾實驗室的 d.m.ritchie 在b語言的基礎上最終設計出了一種新的語言,他取了bcpl的第二個字母作為這種語言的名字,這就是c語言。總所周知,任何東西的盛行都只是乙個階段,語言也是如此。但是,c語言是個例外,乙個矗立了半個世紀的語言,其中好壞,我想應該不難了...