a) 指針變量

Int *p1,*p2;

Ing *pn;

Pn=&n;

b) 指針運(yùn)算

Int a[5]={1,2,3,4,5};

Int *p1 = &a[1];

這樣指針p1就指向數(shù)組a的第二個(gè)元素,江蘇會(huì)計(jì)證考試報(bào)名,2022年會(huì)計(jì)從業(yè)資格考試報(bào)名,2022年江蘇會(huì)計(jì)從業(yè)證報(bào)名,2022年江蘇會(huì)計(jì)從業(yè)考試報(bào)名,江蘇2022年會(huì)計(jì)從業(yè)資格考試成報(bào)名,2022年江蘇會(huì)計(jì)從業(yè)考試,會(huì)計(jì)電算化考試試題,2022年江蘇會(huì)計(jì)電算化,江蘇會(huì)計(jì)電算化試題,江蘇會(huì)計(jì)電算化考試,江蘇初級(jí)會(huì)計(jì)電算化,江蘇初級(jí)會(huì)計(jì)電算化考試">

射精一区欧美专区|国产精品66xx|亚洲视频一区导航|日韩欧美人妻精品中文|超碰婷婷xxnx|日韩无码综合激情|特级黄片一区二区|四虎日韩成人A√|久久精品内谢片|亚洲成a人无码电影

您現(xiàn)在的位置:首頁(yè) > IT認(rèn)證 > Linux認(rèn)證 >

Linux下C編程


Linux下C編程 

一。Linux簡(jiǎn)介 三。指針、函數(shù)及自定義數(shù)據(jù)類型

a) 指針變量

Int *p1,*p2;

Ing *pn;

Pn=&n;

b) 指針運(yùn)算

Int a[5]={1,2,3,4,5};

Int *p1 = &a[1];

這樣指針p1就指向數(shù)組a的第二個(gè)元素

c) 指針類型轉(zhuǎn)換

首先定義指針變量,然后強(qiáng)制轉(zhuǎn)換

Char *pc;

Int *pi;

Pi=(int *)pc;

d) 指向指針的指針

Int **pp;

e) 函數(shù)聲明

Int max(int,int);

Int max(int x,int y)

{

Int t;

T=(x>y)?x:y;

Return t;

}

f) 局部變量

Int func()

{

Int I;

}

全局變量

Int x;

Int main()

{

}

g) 變量的靜態(tài)存儲(chǔ)和動(dòng)態(tài)存儲(chǔ)

全局變量即是靜態(tài)變量,定義時(shí)就分配存儲(chǔ)單元一直到程序結(jié)束

函數(shù)的形式參數(shù)即是動(dòng)態(tài)變量,使用時(shí)才分配存儲(chǔ)單元。

自動(dòng)變量auto、外部變量extern、靜態(tài)變量static、寄存器變量register

默認(rèn)都是自動(dòng)變量

Auto int I; auto可以省略

外部變量即已用其他源文件中的變量

靜態(tài)全局變量表示不能被其他源文件使用,與extern相反。

靜態(tài)局部變量定義在函數(shù)內(nèi),但在函數(shù)結(jié)束后會(huì)繼續(xù)駐留內(nèi)存,并影響函數(shù)的下次調(diào)用。

寄存器變量是放在cpu寄存器內(nèi),只有自動(dòng)局部變量可以定義為寄存器變量。

h) 外部函數(shù) 可以被其他源文件調(diào)用

Extern int add()

{

}

內(nèi)部函數(shù)只能被本文件的函數(shù)調(diào)用

Static int add()

{

}

i) 函數(shù)指針

Void (*p)(int x)

j) 結(jié)構(gòu)體

Struct name

{

Int id;

}

定義結(jié)構(gòu)體

Struct student a;

直接定義結(jié)構(gòu)體變量

Struct

{

Int id;

} a;

結(jié)構(gòu)體初始化

Struct student a = {

23,

};

結(jié)構(gòu)體指針

Struct student *p;

結(jié)構(gòu)體引用

a. id

a->id

(*p)。id

p->id

嵌套結(jié)構(gòu)體

Student.address.zipcode=200000

    a)shell變量

    $0 腳本名稱

    $# 命令行參數(shù)個(gè)數(shù)

    $* 所有命令行參數(shù)

    $[1-n] 第1-n個(gè)參數(shù)

    $$ 當(dāng)前參數(shù)的標(biāo)示符

    $! 后臺(tái)運(yùn)行的最后一個(gè)進(jìn)程標(biāo)示符

    $? 命令退出狀態(tài)

    二。C語(yǔ)言基礎(chǔ)

    a)      開(kāi)發(fā)流程

    編輯源文件->編譯源文件->連接目標(biāo)文件和庫(kù)文件->運(yùn)行

    b)      數(shù)據(jù)類型

    有字符型char、整形 int、浮點(diǎn)型 float、雙精度浮點(diǎn)型 double、空值 void

    獲取數(shù)據(jù)類型的字節(jié)數(shù) sizeof

    c)      運(yùn)算符

    加+、減-、乘*、除/、取余%、自增++、自減--

    ++x 等于 x=x+1;

    ++x先執(zhí)行加一,再引用數(shù)值,x++先引用數(shù)值,再加一

    d)      關(guān)系運(yùn)算符和邏輯運(yùn)算符

    < > == >= <= !=

    &&|| !

    e)      位運(yùn)算符

    與& 或| 異或^ 取反~ 左移《 右移》

    f)       表達(dá)式

    If()

    {

    Statement;

    }

    Else if()

    {

    Statement;

    }

    Else

    {

    Statement;

    }

    Switch()

    {

    Case 常量1:

    Statement;

    Brea;

    Case 常量2:

    Statement;

    Break;

    Default:

    Statement;

    }

    For(表達(dá)式1;表達(dá)式2;表達(dá)式3)

    {

    Statmennt;

    }

    While(表達(dá)式)

    {

    Statement;

    }

    Do

    {

    Statement;

    }

    While(表達(dá)式)

    g)      跳轉(zhuǎn)語(yǔ)句

    Break 1)switch中中止某個(gè)case 2)循環(huán)結(jié)束

    Continue 結(jié)束本次循環(huán)

    h)      數(shù)組

    Int array[5]={1,2,3,4,5};

    Int b[2][3]={{1,2,3},{4,5,6}};

    i)        字符組

    Char str[5]={‘h’,’e’,’l’,’l’,’o’};

    j)        宏定義

    #define PI 3.1415926

    #define MAX(a,b) (a>b)?a:b

    宏名和形式參數(shù)之間不能加參數(shù)

    k)      文件包含

    #include <文件>

    在系統(tǒng)目錄中找,調(diào)用系統(tǒng)庫(kù)文件

    #include “文件名”

    在當(dāng)前目錄中招,再找到系統(tǒng)目錄中招,用戶自己的庫(kù)文件

    l)        條件編譯

    #if

    #else

    #endif

    #ifdef

    #else

    #endif

k) 共同體

Union name

{

}

共同體和結(jié)構(gòu)體區(qū)別:共同體存儲(chǔ)是采用覆蓋技術(shù),不同數(shù)據(jù)類型成員占用同一段內(nèi)存空間。某一時(shí)間點(diǎn),共同體只能存儲(chǔ)某一成員信息。

l) 枚舉

Enum week

{

SUNDAY,MONDAY,TUESDAY

}

枚舉定義

Enum week w;

枚舉引用

A=Tuesday

Print的話,出來(lái)時(shí)2

四。數(shù)據(jù)結(jié)構(gòu)

a) 線性表

b) 棧

只允許在一段插入和刪除數(shù)據(jù)的線性表

c) 隊(duì)列

先進(jìn)先出的線性表,允許在一段插入,另一端刪除

d) 二叉樹(shù)

e) 查找算法

f) 排序算法

五。文本編輯器

a) 光標(biāo)移到{,然后輸入%,會(huì)跳轉(zhuǎn)到匹配的}

b) 自動(dòng)補(bǔ)全

Pr

Ctrl+p或者ctrl+n

c) 自動(dòng)縮進(jìn)

:set cindent shiftwidth=4;

手動(dòng)縮進(jìn)

在某行打==

=G所在行到文件底部自動(dòng)縮進(jìn)

六。GCC編譯器

a) Gcc基本選項(xiàng)

-E 預(yù)處理后及停止

-S 編譯后停止

-c 編譯或匯編源文件

-o file 制定輸出文件

b) 警告選項(xiàng)

-Wall 啟用所有警告信息

-Werror 發(fā)生警告時(shí)取消編譯操作

-w 禁用所有警告信息

c) 優(yōu)化選項(xiàng)

-O0 不優(yōu)化

-O或-O1 基本優(yōu)化

-O2 除了-O1外,還額外調(diào)整

-O3 除-O2外,還處理器優(yōu)化

-Os 生成最小執(zhí)行文件,用于嵌入式領(lǐng)域

d) 頭文件包含變量和函數(shù)聲明,不包含定義函數(shù)的實(shí)現(xiàn)

函數(shù)具體是現(xiàn)在庫(kù)文件中,分為靜態(tài)庫(kù)和動(dòng)態(tài)庫(kù)。

靜態(tài)庫(kù)編譯連接時(shí)將源代碼加入到可執(zhí)行文件中,后綴一般為。a

動(dòng)態(tài)庫(kù)程序執(zhí)行時(shí)有鏈接文件加載,一般為。so

七。調(diào)試工具
a) 啟動(dòng)gdc

$gdb

退出

Quit

b) 載入程序

$gdc example

(gdb) file example

列出源代碼

(gdb) list

執(zhí)行程序

(gdb) r

斷點(diǎn)處繼續(xù)運(yùn)行程序

(gdb) c

幫助

(gdb) help

在第九行設(shè)置斷點(diǎn)

(gdb) b 9

查看斷點(diǎn)

(gdb) info break

刪除斷點(diǎn)

(gdb) d 1

刪除制定行上的斷點(diǎn)

(gdb) clear 9

禁用和恢復(fù)斷點(diǎn)

(gdb) disable 1

(gdb) enable 1

查看變量

(gdb) p sume

自動(dòng)到斷點(diǎn)處顯示變量

(gdb) display sum

顯示變量數(shù)據(jù)類型

(gdb) whatis x

修改變量值

(gdb) set sum = 100

單步執(zhí)行程序 step

(gdb) s

繼續(xù) next

(gdb) n

退出 return finish

直接退出

(gdb) return

退出前執(zhí)行完程序

(gdb) finish

執(zhí)行到某行

(gdb) until

跳轉(zhuǎn)某行

(gdb) j 15

強(qiáng)制調(diào)用函數(shù)

(gdb) call printf(“”)

查看堆棧信息

backtrace

(gdb) bt

Frame

(gdb) f 1

查看當(dāng)前棧信息

(gdb) info frame

查看源程序信息

(gdb) info source

查看寄存器

(gdb) info registers

查看匯編代碼

(gdb) disassemble printinfo

八。多文件項(xiàng)目管理Make,makefile,automake

九。Linux C基本應(yīng)用

相關(guān)文章

無(wú)相關(guān)信息
更新時(shí)間2022-03-13 11:11:02【至頂部↑】
聯(lián)系我們 | 郵件: | 客服熱線電話:4008816886(QQ同號(hào)) | 

付款方式留言簿投訴中心網(wǎng)站糾錯(cuò)二維碼手機(jī)版

客服電話: