c語言初始函數(shù) c語言函數(shù)詳解

c語言的初始化函數(shù)問題

void InitStack(SqStack *S)

讓客戶滿意是我們工作的目標(biāo),不斷超越客戶的期望值來自于我們對(duì)這個(gè)行業(yè)的熱愛。我們立志把好的技術(shù)通過有效、簡(jiǎn)單的方式提供給客戶,將通過不懈努力成為客戶在信息化領(lǐng)域值得信任、有價(jià)值的長期合作伙伴,公司提供的服務(wù)項(xiàng)目有:域名注冊(cè)、虛擬主機(jī)、營銷軟件、網(wǎng)站建設(shè)、梁平網(wǎng)站維護(hù)、網(wǎng)站推廣。

{

int i;

for(i=0;iN;i++)

S-base[i]=0;

S-top=0;

}

C中函數(shù)參數(shù)是按值傳遞,你那樣寫修改的是復(fù)制的副本,本身沒有修改,傳遞指針,間接修改。

其他的函數(shù)也一樣,都需要傳遞指針。

如何使用C語言?它有什么函數(shù)?如何初始化?

通過C語言撰寫程序,最經(jīng)典的函數(shù)是static。

在C語言中,static的作用有三條:一是隱藏功能,二是保持持久性功能,三是默認(rèn)初始化為0。

在C語言中,static的字面意思很容易把我們導(dǎo)入歧途,其實(shí)它的作用有三條,分別是:一是隱藏功能,對(duì)于static修飾的函數(shù)和全局變量而言。二是保持持久性功能,對(duì)于static修飾的局部變量而言。三是因?yàn)榇娣旁陟o態(tài)區(qū),全局和局部的static修飾的變量,都默認(rèn)初始化為0。

如果加了static,就會(huì)對(duì)其它源文件隱藏。例如在a和msg的定義前加上static,main.c就看不到它們了。利用這一特性可以在不同的文件中定義同名函數(shù)和同名變量,而不必?fù)?dān)心命名沖突。

Static可以用作函數(shù)和變量的前綴,對(duì)于函數(shù)來講,static的作用僅限于隱藏。

C語言中初等函數(shù)有哪些

基本初等函數(shù)

我們最常用的有五種基本初等函數(shù),分別是:指數(shù)函數(shù)、對(duì)數(shù)函數(shù)、冪函數(shù)、三角函數(shù)及反三角函數(shù)。

關(guān)于c語言數(shù)據(jù)結(jié)構(gòu)中棧的初始化函數(shù)傳遞參數(shù)的問題

1、通過函數(shù)的參數(shù)顯示傳遞:

a(int

a)

{

a

=

a+2;

}

b(void)

{

int

b

=

3;

a(b);

}

在函數(shù)a中a作為一個(gè)參數(shù)傳入函數(shù)中進(jìn)行運(yùn)算,那么a就可以算作是a的輸入,然后在程序內(nèi)部a進(jìn)行了運(yùn)算后值變了,那么運(yùn)算后的a又算作是a函數(shù)的輸出。

2、通過全局變量隱式傳遞:

全局變量你應(yīng)該知道吧,簡(jiǎn)單點(diǎn)說就是作用域涵蓋整個(gè)程序的變量(當(dāng)然要看具體情況)。

假設(shè)a為int型全局變量,初始值為1:int

a

=

1;

a()

{

a

=

a

+

2;

}

b()

{

a

=

a

+

3;

}

main()

{

a();

b();

a();

}

通過main函數(shù)我們可以看到,程序首先執(zhí)行的是函數(shù)a,那么執(zhí)行完函數(shù)a后全局變量a的值由初始值1變成了3,然后又繼續(xù)執(zhí)行函數(shù)b,注意此時(shí)函數(shù)b也是對(duì)a進(jìn)行運(yùn)算,那么此時(shí)全局變量a成了b的輸入,運(yùn)算后a的值為了6,此時(shí)a為b的輸出。那么也就是說全局變量a在經(jīng)過a函數(shù)的改變后作為一個(gè)輸入隱式的傳入了b函數(shù),然后經(jīng)過b函數(shù)的運(yùn)算又算作是b的輸出。執(zhí)行過b函數(shù)后程序又遇到了a函數(shù),那么此時(shí)經(jīng)過b函數(shù)運(yùn)算的a又作為a函數(shù)的一個(gè)輸入了。

c語言初級(jí)函數(shù)

對(duì)于函數(shù),有兩個(gè)概念要理解好

那就是實(shí)參和形參。

形參是在函數(shù)的原型里面的參數(shù)值,如下面函數(shù)原型

void inc(int a);

a就是形參,如果在使用的時(shí)候,給函數(shù)傳遞一個(gè)變量,如

int x = 5; //在這里x只是一個(gè)變量

inc(x);// 把他遞給函數(shù)時(shí),他就是函數(shù)運(yùn)行時(shí)的一個(gè)參數(shù),與a不同的是,x叫做實(shí)參,因?yàn)閰⑴c實(shí)際的運(yùn)算。

而a只是表明一個(gè)變量,甚至上面的函數(shù)原型可以寫為

void inc(int);//a沒必要存在。

不過在實(shí)現(xiàn)這個(gè)函數(shù)時(shí),就必須指明形參的名字,畢竟要操作他嘛。

void inc(int a)

{

a = a + 1;

}

上面講了什么是形參,什么是實(shí)參。

形參是在定義函數(shù)原型,或者實(shí)現(xiàn)函數(shù)功能時(shí)用的,

而實(shí)參是在調(diào)用函數(shù)時(shí)使用的。

調(diào)用過程,會(huì)把x送給函數(shù)inc,但是這種說法很表面,具體說,應(yīng)該是把x的值的大小送給inc。也就是函數(shù)的參數(shù)傳遞是傳值的形式

我在main函數(shù)里定義了一個(gè)變量x,并初始化為5;

int x = 5;

如果調(diào)用inc(x),這樣的調(diào)用不會(huì)改變變量x所對(duì)應(yīng)的內(nèi)存空間里面的數(shù)據(jù),

這里用到傳值,意思就是只是把x對(duì)應(yīng)的值傳給函數(shù),而x對(duì)應(yīng)的內(nèi)容是不會(huì)變的。

要想改變x的內(nèi)容,必須傳遞指向x的指針。

上面的函數(shù)可以改寫成下面這個(gè)。

void inc(int *a) //這里的*用于定義a為一個(gè)指針,指向int類型

{

(*a) = (*a) + 1; //這里的*含義和上面的不同,表示使用地址a對(duì)應(yīng)的值

}

調(diào)用時(shí)使用

inc(x);// 是取地址符

這樣,就能改變x的值

下面是一個(gè)程序可以測(cè)試

#include stdio.h

void Inc1(int a);

void Inc2(int *a);

int main()

{

int x = 5;

Inc1(x);

printf("x的值為5,使用傳值的函數(shù)后,x的值為:%d\n",x);

Inc2(x);

printf("x的值為5,使用傳地址的函數(shù)后,x的值為:%d\n",x);

return 0;

}

void Inc1(int a)

{

a = a + 1;

}

void Inc2(int *a)

{

*a = *a + 1;

}

解決辦法:

上面的函數(shù)改寫為

void f(int *x, int *y)

{ int t;

if(*x *y) {

t=*x;*x=*y;*y=*t;

}

}

調(diào)用時(shí)使用

f(a,b);f(a,c);f(b,c); 即可。

不過對(duì)于指針的操作要小心,在C++里面使用了另外一種函數(shù)實(shí)參到形參的技術(shù),叫做引用,可以很方面的實(shí)現(xiàn)這個(gè)功能,同時(shí)避免了指針操作帶來的問題。

下面是c++的寫法

#include iostream

using namespace std;

void f(int x, int y) //這個(gè)時(shí)候不是取地址了,而是表示變量的引用

{ int t;

if(xy)

{

t=x;x=y;y=t;

}

}

int main()

{

int a=4,b=3,c=5;

f(a,b);f(a,c);f(b,c);

couta' 'b' 'cendl;

return 0;

}

建議,標(biāo)準(zhǔn)的c或者c++的程序都必須使用如下原型

int main()

{

}

至于要不要使用return關(guān)鍵字,去返回一些結(jié)果,看你程序的功能及結(jié)構(gòu),標(biāo)準(zhǔn)的是可以不return的,但是如果你是在VC環(huán)境下編程的話,不return會(huì)報(bào)錯(cuò),我只能說微軟太TMD。

我都是在linux用gcc的,比較符合標(biāo)準(zhǔn)。

以上程序,都在一個(gè)IDE下實(shí)現(xiàn)測(cè)試過

那個(gè)IDE的網(wǎng)址是

分享名稱:c語言初始函數(shù) c語言函數(shù)詳解
文章來源:http://muchs.cn/article20/hhejjo.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)頁設(shè)計(jì)公司、定制開發(fā)響應(yīng)式網(wǎng)站、電子商務(wù)、定制網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

成都seo排名網(wǎng)站優(yōu)化