中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當(dāng)前位置: 首頁(yè) > news >正文

房地產(chǎn)網(wǎng)站建設(shè)與優(yōu)化分析北京seo專業(yè)團(tuán)隊(duì)

房地產(chǎn)網(wǎng)站建設(shè)與優(yōu)化分析,北京seo專業(yè)團(tuán)隊(duì),重慶網(wǎng)站建設(shè)公司招聘,營(yíng)銷策劃公司怎么選廣告系列文章目錄 第一章 “C“滸傳——初識(shí)C語(yǔ)言(更適合初學(xué)者體質(zhì)哦!) 第二章 詳細(xì)認(rèn)識(shí)分支語(yǔ)句和循環(huán)語(yǔ)句以及他們的易錯(cuò)點(diǎn) 第三章 初階C語(yǔ)言——特別詳細(xì)地介紹函數(shù) 目錄 系列文章目錄 前言 一、函數(shù)是個(gè)什么鬼東西? 二、C語(yǔ)…

系列文章目錄

?第一章?“C“滸傳——初識(shí)C語(yǔ)言(更適合初學(xué)者體質(zhì)哦!)

?第二章?詳細(xì)認(rèn)識(shí)分支語(yǔ)句和循環(huán)語(yǔ)句以及他們的易錯(cuò)點(diǎn)?

?第三章??初階C語(yǔ)言——特別詳細(xì)地介紹函數(shù)


目錄

系列文章目錄

前言

一、函數(shù)是個(gè)什么鬼東西?

?二、C語(yǔ)言中函數(shù)的分類:

2.1 庫(kù)函數(shù)

2.1.1 如何學(xué)會(huì)使用庫(kù)函數(shù)?

2.1.2 來(lái)通過(guò)學(xué)幾個(gè)庫(kù)函數(shù)進(jìn)行如何學(xué)會(huì)庫(kù)函數(shù)

pow(pow函數(shù)詳解)

?strcpy(strcpy函數(shù)詳解)

memset(memset函數(shù)詳解?)

?2.2 自定義函數(shù)

三、函數(shù)的參數(shù)

3.1 實(shí)際參數(shù)(實(shí)參):

3.2 形式參數(shù)(形參)?:

四、函數(shù)的調(diào)用

?4.1 傳值調(diào)用

?4.2 傳址調(diào)用

五、函數(shù)的嵌套調(diào)用和鏈?zhǔn)皆L問(wèn)

5.1 嵌套調(diào)用

5.2 鏈?zhǔn)皆L問(wèn)

六、函數(shù)的聲明和定義

6.1 函數(shù)聲明:

6.2 函數(shù)定義:

七、函數(shù)遞歸

7.1 什么是遞歸

7.2 遞歸的兩個(gè)必要條件

總結(jié)


前言

???????在第一章內(nèi),我們學(xué)習(xí)了C語(yǔ)言究竟是什么以及到底講了什么;而在第二章內(nèi),我們?cè)敿?xì)地學(xué)習(xí)了分支語(yǔ)句與循環(huán)語(yǔ)句,了解了C語(yǔ)言的一部分語(yǔ)句,而在這一章,小編我要帶大家進(jìn)行函數(shù)的學(xué)習(xí),因?yàn)楹瘮?shù)這一部分在C語(yǔ)言中也是及其重要的一部分。

???????從標(biāo)題也能看出來(lái),我們有要進(jìn)行超詳細(xì)地介紹函數(shù),那么我就開始了我的表演。


一、函數(shù)是個(gè)什么鬼東西?


???????在數(shù)學(xué)中,我們也總是在學(xué)習(xí)函數(shù),而數(shù)學(xué)中的函數(shù)是反映的是自變量與因變量的一一對(duì)應(yīng)關(guān)系;雖然你們可能知道數(shù)學(xué)中的函數(shù),但你們了解C語(yǔ)言中的函數(shù)嗎?在C語(yǔ)言中,對(duì)函數(shù)的概念是子程序。

在維基百科中對(duì)函數(shù)的定義:子程序


?二、C語(yǔ)言中函數(shù)的分類:


1)庫(kù)函數(shù)

2)自定義函數(shù)

????????在小編看來(lái),每一種函數(shù)都很重要所以要學(xué)好每一種函數(shù),那么接下來(lái),就跟隨小編我的步伐進(jìn)行學(xué)習(xí)吧!


2.1 庫(kù)函數(shù)


為什么會(huì)有庫(kù)函數(shù)呢?

???????像上面我們描述的基礎(chǔ)功能,他們不是業(yè)務(wù)性的代碼。我們?cè)陂_發(fā)過(guò)程中每個(gè)程序員都可能用的到為了支持可移植性提高程序的效率,所以C語(yǔ)言的基礎(chǔ)庫(kù)中提供了一系列類似的庫(kù)函數(shù),方便程序員進(jìn)行軟件開發(fā)。?

在上面畫橫線的語(yǔ)句,小編提出一個(gè)問(wèn)題:庫(kù)函數(shù)是由誰(shuí)編寫的?

???????庫(kù)函數(shù)真的是由C語(yǔ)言提供的嗎?答案是不是庫(kù)函數(shù)是C語(yǔ)言標(biāo)準(zhǔn)中約定好,然后由編譯器的廠商提供實(shí)現(xiàn)的。?

???????如果這段話,讀者不理解的話,下面,小編我給大家舉個(gè)例子

C語(yǔ)言標(biāo)準(zhǔn)規(guī)定:

1)函數(shù)的功能——求字符串的長(zhǎng)度

2)函數(shù)的名字——strlen

3)函數(shù)的參數(shù)——const char* str

4)函數(shù)的返回類型——size_t。

???????A編譯器廠商B編譯器廠商都會(huì)按照C語(yǔ)言標(biāo)準(zhǔn)規(guī)定去制作功能,名字,參數(shù),返回類型相同的函數(shù)去完成這個(gè)功能,但是函數(shù)內(nèi)部如何實(shí)現(xiàn)的是不完全相同的,這就是庫(kù)函數(shù)的產(chǎn)生。?

?在了解完庫(kù)函數(shù)的由來(lái)后,小編進(jìn)行簡(jiǎn)單的總結(jié)一下C語(yǔ)言常用的庫(kù)函數(shù)都有:

IO函數(shù)(輸入/輸出函數(shù)):scanf,printf

字符串操作函數(shù):strlen,strcmp,strcpy

字符操作函數(shù):tolower,toupper

內(nèi)存操作函數(shù):malloc,calloc,realloc,free

時(shí)間/日期函數(shù):time,srand,rand
數(shù)字函數(shù):cos,pow,sin

其他庫(kù)函數(shù):.......

???????將庫(kù)函數(shù)分類,是一個(gè)主題一個(gè)主題的,一個(gè)主題的一系列的庫(kù)函數(shù)都會(huì)放在一個(gè)頭文件中。?

注釋:但是庫(kù)函數(shù)必須知道的一個(gè)秘密就是:使用庫(kù)函數(shù),必須包含#include對(duì)應(yīng)的頭文件。?


2.1.1 如何學(xué)會(huì)使用庫(kù)函數(shù)?


這些庫(kù)函數(shù)不需要全部記住,需要學(xué)會(huì)查詢工具的使用:

MSDN(Microsoft Developer Network)

?http://www.cplusplus.com

?http://en.cppreference.com?(英文版)

?http://zh.cpprefrrence.com? (中文版)


2.1.2 來(lái)通過(guò)學(xué)幾個(gè)庫(kù)函數(shù)進(jìn)行如何學(xué)會(huì)庫(kù)函數(shù)


???????學(xué)習(xí)一個(gè)函數(shù),先看函數(shù)名字,再看函數(shù)功能,接著看函數(shù)參數(shù),最后看函數(shù)返回類型。接下來(lái),基本都是這樣進(jìn)行學(xué)習(xí)庫(kù)函數(shù)的。

pow(pow函數(shù)詳解)

?第一個(gè),首先學(xué)一個(gè)pow函數(shù)。從名字上,我們可以看出這是一個(gè)求次方的函數(shù)。

???????這個(gè)函數(shù)的參數(shù)類型都是double類型說(shuō)明int類型,float類型都可以使用;而要注意一下這個(gè)函數(shù)的返回值為double類型,如果不想讓編譯器警告的話,就進(jìn)行強(qiáng)制類型轉(zhuǎn)換。

?

?

?千萬(wàn)別忘了這個(gè)要引用這個(gè)庫(kù)函數(shù)的頭文件。?

下面進(jìn)行代碼學(xué)習(xí):

#include <stdio.h>
#include <math.h>
int main()
{int a = 2;int b = (int) pow(a, 6);printf("%d\n", b);return 0;
}

?strcpy(strcpy函數(shù)詳解)

?第二個(gè),學(xué)習(xí)一個(gè)字符串函數(shù),從名字上,我們可以看出這個(gè)一個(gè)拷貝字符串的函數(shù)。

?

???????這個(gè)函數(shù)主要就是將一個(gè)字符串拷貝到另一個(gè)字符數(shù)組中,還是比較簡(jiǎn)單的,要記住的一點(diǎn)是這個(gè)函數(shù)會(huì)把‘\0'一起拷貝過(guò)去。?

?下面進(jìn)行代碼學(xué)習(xí):

#include <stdio.h>
#include <string.h>
int main()
{char arr1[20] = "xxxxxxxxxxxxxxx";char arr2[] = "hello c";strcpy(arr1, arr2);printf("%s\n", arr1); //printf("%s\n", strcpy(arr1, arr2));return 0;
}

memset(memset函數(shù)詳解?)

第三個(gè),學(xué)習(xí)一個(gè)內(nèi)存函數(shù),從名字上看,這個(gè)函數(shù)是用于內(nèi)存設(shè)置的函數(shù)。

?

??下面進(jìn)行代碼學(xué)習(xí):

#include <stdio.h>
#include <string.h>
int main()
{char arr[] = "hello C";memset(arr, 'c', 5);printf("%s\n", arr);return 0;
}

?2.2 自定義函數(shù)


???????如果庫(kù)函數(shù)能干所有的事情的話,那還要程序員干什么?所以更加重要的是自定義函數(shù)。在前面,我們已經(jīng)詳細(xì)地學(xué)習(xí)了庫(kù)函數(shù)是什么以及如何使用庫(kù)函數(shù)。

???????那么自定義函數(shù)與庫(kù)函數(shù)一樣,有函數(shù)名返回值類型函數(shù)參數(shù)。但是不一樣的是,這些函數(shù)都是我們自己來(lái)設(shè)計(jì)的,這就給程序員一個(gè)很大的發(fā)展空間。

函數(shù)的組成:

ret_type fun_name(para1, * )
{statement; //語(yǔ)句項(xiàng)
}

ret_type? ? ? ?返回類型

fun_name? ? 函數(shù)名

para1? ? ? ? ? ?函數(shù)參數(shù)

舉個(gè)例子吧!這個(gè)例子還是比較簡(jiǎn)單的!

寫一個(gè)函數(shù)可以找出兩個(gè)整數(shù)中的最大值

#include <stdio.h>
int Get_max(int num1, int num2)
{return num1 > num2 ? num1 : num2;
}
int main()
{int num1 = 0;int num2 = 0;scanf("%d %d", &num1, &num2);int max = Get_max(num1, num2);printf("max = %d", max);return 0;
}

再舉一個(gè)例子!

寫一個(gè)函數(shù)可以交換兩個(gè)整形變量的內(nèi)容

#include <stdio.h>
//實(shí)現(xiàn)成函數(shù),但是不能完成任務(wù)
void Swap1(int x, int y)
{int temp = x;x = y;y = temp;
}
//正確的版本
void Swap2(int* ptr1, int* ptr2)
{int temp = *ptr1;*ptr1 = *ptr2;*ptr2 = temp;
}
int main()
{int num1 = 1;int num2 = 2;Swap1(num1, num2);printf("Swap1: num1 = %d num2 = %d\n", num1, num2);Swap2(&num1, &num2);printf("Swap2: num1 = %d num2 = %d\n", num1, num2);return 0;
}

???????這個(gè)例子就有點(diǎn)意思了,在Swap1函數(shù)中,x,y自己獨(dú)立的空間,不會(huì)影響num1,num2的值,函數(shù)在調(diào)用的時(shí)候,將實(shí)參傳遞給形參,形參實(shí)際上是實(shí)參的一份臨時(shí)拷貝,對(duì)形參的修改是不會(huì)改變實(shí)參的。這個(gè)例子就引入了下面小編要講的函數(shù)的參數(shù)。?


三、函數(shù)的參數(shù)


3.1 實(shí)際參數(shù)(實(shí)參):

實(shí)參的概念:真實(shí)傳給函數(shù)的參數(shù),叫實(shí)參。

實(shí)參的分類:實(shí)參可以是:常量變量表達(dá)式函數(shù)等。

注意:無(wú)論實(shí)參是何種類型的量,在進(jìn)行函數(shù)調(diào)用時(shí),它們都必須有確定的值。以便把這些值傳送給形參。


3.2 形式參數(shù)(形參)?:

形式參數(shù)的概念:形式參數(shù)地址函數(shù)名后括號(hào)中的變量,因?yàn)樾问絽?shù)只有在函數(shù)被調(diào)用的過(guò)程中才實(shí)例化(分配內(nèi)存單元),所以叫形式參數(shù)。形式參數(shù)當(dāng)函數(shù)調(diào)用完成之后就自動(dòng)銷毀了。因此形式參數(shù)只有在函數(shù)中有效

???????在介紹完這兩個(gè)概念,重新回頭去看上面第二個(gè)例子。Swap1函數(shù)和Swap2函數(shù)中的參數(shù)x,y,ptr1,ptr2都是形式參數(shù);在main函數(shù)中傳給Swap1的num1,num2和傳給Swap2的&num1,&num2實(shí)際參數(shù)。

下面,我們來(lái)進(jìn)行函數(shù)的實(shí)參和形參進(jìn)行分析

實(shí)參num1和num2,形參x,y,使用的不是同一個(gè)空間

而實(shí)參&num1和&num2,形參ptr1,ptr2,使用的空間是一樣的:

?

總結(jié):形參實(shí)例化之后其實(shí)相當(dāng)于實(shí)參的一份臨時(shí)拷貝。


四、函數(shù)的調(diào)用


?4.1 傳值調(diào)用

  • 函數(shù)的形參和實(shí)參分別占用不同的內(nèi)存塊對(duì)形參的修改不會(huì)影響實(shí)參。

?4.2 傳址調(diào)用

  • 傳址調(diào)用是把函數(shù)外部創(chuàng)建變量的內(nèi)存地址傳遞給函數(shù)參數(shù)的一種調(diào)用函數(shù)的方式。
  • 這種傳參方式可以讓函數(shù)和函數(shù)外面的變量建立起真正的聯(lián)系,也就是函數(shù)內(nèi)部可以直接操作函數(shù)外部的變量。

???????要切記這兩種傳參方式的適用場(chǎng)景不同如果不想改變實(shí)參,就用傳值調(diào)用;如果想通過(guò)形參改變實(shí)參,就用傳址調(diào)用。?


五、函數(shù)的嵌套調(diào)用和鏈?zhǔn)皆L問(wèn)


???????函數(shù)和函數(shù)之間可以根據(jù)實(shí)際的需求進(jìn)行組合的,也就是互相調(diào)用的。

5.1 嵌套調(diào)用

函數(shù)可以嵌套調(diào)用,但是不能嵌套定義。

5.2 鏈?zhǔn)皆L問(wèn)

把一個(gè)函數(shù)的返回值作為另外一個(gè)函數(shù)的參數(shù)。

#include <stdio.h>
int main()
{printf("%d", printf("%d", printf("%d", 43)));return 0;
}

注意:printf函數(shù)的返回值值打印在屏幕上字符的個(gè)數(shù)?

在對(duì)這道題進(jìn)行一個(gè)變式:(在%d后面加上‘\n’)

#include <stdio.h>
int main()
{printf("%d\n", printf("%d\n", printf("%d\n", 43)));return 0;
}


六、函數(shù)的聲明和定義


6.1 函數(shù)聲明:

  1. 告訴編譯器有一個(gè)函數(shù)叫什么,參數(shù)是什么,返回類型是什么。但是具體是不是存在,函數(shù)聲明解決不了。
  2. 函數(shù)的聲明一般出現(xiàn)在函數(shù)的使用之前,要滿足先聲明后使用。
  3. 函數(shù)的聲明一般要放在頭文件中

6.2 函數(shù)定義:

函數(shù)的定義是指函數(shù)的具體實(shí)現(xiàn),交代函數(shù)的功能實(shí)現(xiàn)。

下面,小編舉一個(gè)例子。

test.h的內(nèi)容

放置函數(shù)的聲明

#ifndef __TEST_H__
#define __TEST_H__
//函數(shù)的聲明
int Add(int x, int y);#endif //__TEST_H__

test.c的內(nèi)容

放置函數(shù)的實(shí)現(xiàn)?

#include "test.h"
//函數(shù)Add的實(shí)現(xiàn)
int Add(int x, int y)
{return x+y;
}

之后,小編我會(huì)分模塊寫兩個(gè)小游戲的。


七、函數(shù)遞歸


7.1 什么是遞歸

程序調(diào)用自身的編程技巧稱為遞歸。

???????遞歸作為一種算法在程序設(shè)計(jì)語(yǔ)言中廣泛應(yīng)用。一個(gè)過(guò)程或函數(shù)在其定義或說(shuō)明中有直接或間接調(diào)用自身的一種方法,它通常把一個(gè)大型復(fù)雜的問(wèn)題層層轉(zhuǎn)化為一個(gè)與原問(wèn)題相似的規(guī)模較小的問(wèn)題來(lái)求解,遞歸策略只需少量的程序就可以描述出解題過(guò)程所需要的多次重復(fù)計(jì)算,大大地減少了程序的代碼量。

遞歸的主要思考方式在于:把大事化小

7.2 遞歸的兩個(gè)必要條件

  • 存在限制條件,當(dāng)滿足這個(gè)限制條件的時(shí)候,遞歸便不再繼續(xù)。
  • 每次遞歸調(diào)用之后越來(lái)越接近這個(gè)限制條件

總結(jié)

???????在這一部分,小編詳細(xì)地編寫了有關(guān)函數(shù)的一篇博客。希望大家看完以后,進(jìn)行點(diǎn)評(píng),謝謝大家!

http://www.risenshineclean.com/news/52638.html

相關(guān)文章:

  • 軟件外包學(xué)院大學(xué)承認(rèn)嗎網(wǎng)站免費(fèi)seo
  • 上海做外貿(mào)網(wǎng)站建設(shè)湖南企業(yè)競(jìng)價(jià)優(yōu)化首選
  • 網(wǎng)站建設(shè)地位友情鏈接交換網(wǎng)
  • 揭陽(yáng)網(wǎng)站制作軟件技能培訓(xùn)機(jī)構(gòu)
  • 移動(dòng)應(yīng)用開發(fā)難學(xué)嗎上海有哪些優(yōu)化網(wǎng)站推廣公司
  • WordPress離線博客江蘇網(wǎng)站seo設(shè)計(jì)
  • dw做網(wǎng)站怎么換圖片南京最新消息今天
  • 中國(guó)外發(fā)加工網(wǎng)app北京網(wǎng)站優(yōu)化推廣公司
  • 有什么好用的模擬建站軟件營(yíng)銷策劃方案怎么做
  • 國(guó)內(nèi)做網(wǎng)站費(fèi)用seo建站網(wǎng)絡(luò)公司
  • 校本教研網(wǎng)站建設(shè)網(wǎng)絡(luò)營(yíng)銷的方法有哪些?舉例說(shuō)明
  • 華強(qiáng)北 做網(wǎng)站中國(guó)輿情觀察網(wǎng)
  • jeecms 怎么建設(shè)網(wǎng)站網(wǎng)站搜索引擎優(yōu)化主要方法
  • 租用阿里云做網(wǎng)站鏈接是什么意思
  • 旅游平臺(tái)網(wǎng)站合作建設(shè)方案線上運(yùn)營(yíng)推廣
  • 網(wǎng)站建設(shè)反饋書模板成都網(wǎng)站seo排名優(yōu)化
  • 網(wǎng)頁(yè)投票鏈接怎么做汕頭seo優(yōu)化項(xiàng)目
  • wordpress的pingseo研究中心vip課程
  • 如何拿模板做網(wǎng)站網(wǎng)站seo案例
  • 做旅游網(wǎng)站推廣色盲怎么治療
  • 網(wǎng)站 擴(kuò)展廣告平臺(tái)網(wǎng)站有哪些
  • 成都網(wǎng)站建設(shè)公司淺談百度一下百度知道
  • 網(wǎng)站的建設(shè)方法有哪些內(nèi)容seo營(yíng)銷優(yōu)化軟件
  • 上海網(wǎng)站設(shè)計(jì)大連網(wǎng)絡(luò)整合營(yíng)銷方案ppt
  • 住房與住房建設(shè)部網(wǎng)站如何搭建一個(gè)網(wǎng)站平臺(tái)
  • 怎么網(wǎng)站定制十大接單推廣app平臺(tái)
  • 網(wǎng)頁(yè)設(shè)計(jì)入門軟件排名優(yōu)化怎么做
  • 網(wǎng)站內(nèi)頁(yè)banner一般做多高百度一下搜索引擎
  • 醫(yī)療網(wǎng)站怎么做推廣成人再就業(yè)技能培訓(xùn)班
  • 織夢(mèng)裝修網(wǎng)站模板湖南廣告優(yōu)化