91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

C語言函數的使用方法是什么

發布時間:2022-04-25 15:32:45 來源:億速云 閱讀:266 作者:iii 欄目:開發技術

本文小編為大家詳細介紹“C語言函數的使用方法是什么”,內容詳細,步驟清晰,細節處理妥當,希望這篇“C語言函數的使用方法是什么”文章能幫助大家解決疑惑,下面跟著小編的思路慢慢深入,一起來學習新知識吧。

一、函數的嵌套調用

在定義函數時,一個函數內不能再定義另一個函數,即不能嵌套定義,但可以嵌套調用函數,即在調用一個函數的過程中,又調用另一個函數。

C語言函數的使用方法是什么

??注意:

  • 函數可以嵌套調用但是不可以嵌套定義。

  • 每一個函數都應該在大括號的外面獨立存在。

代碼示例:

C語言函數的使用方法是什么

根據這張圖可以清楚的看到,three_line() 函數內部嵌套了一個 new_line() 函數。

當前代碼打印了3個haha。

二、函數的鏈式訪問

函數的鏈式訪問就是把一個函數的返回值作為另一個函數的參數。

C語言函數的使用方法是什么

當前代碼,strlen()函數是作為printf()打印函數的參數,把自己的返回值3返回給了printf()函數,所以最終打印結果是:3。

下面代碼的打印結果是什么?

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

 輸出結果:

C語言函數的使用方法是什么

代碼分析:  

 ??注意:printf()函數的返回值是打印字符的個數。

當得知了printf()函數的返回值是打印字符的個數后,可以做出一下分析。

C語言函數的使用方法是什么

三、函數遞歸

遞歸的優缺點

程序調用自身的編程技巧稱為遞歸。可以直接或間接的調用,本質是把復雜的問題轉化為一個規模小的問題。遞歸一般只需少量的代碼就可描繪出多次重復計算。遞歸的主要思考方式:大事化小

必要條件

  • 存在限制條件,當滿足這個限制條件的時候,遞歸便不再繼續。

  • 每次遞歸調用之后越來越接近這個限制條

使用場景

1. 能夠要求轉化為新的問題,且二者解決方法相同,所處理的對象存在規律變化。

2. 非遞歸比較麻煩,而遞歸很簡單。

3. 有模板或是公式可以直接套用,不會出現明顯問題。

函數遞歸的細節說明 

1. 每級遞歸都有自己的變量,可能名稱相同,但是值不同。

遞歸調用時,系統自動保留當前函數的參數變量。

每次調用系統都會為函數開辟相應的空間。

2. 每次調用都要返回值,遞歸執行結束后,控制權傳回到上一級函數。

調用結束后,系統釋放本次調用所開辟的空間,

程序返回到上一次的調用點,同時獲得初進該級調用的參數。

每級遞歸必須逐級返回,不可跳躍或間斷。

3. 函數中遞歸語句之前的代碼,按被調函數的順序執行,

遞歸之后的代碼,與被調函數相反的順序執行。

舉例說明

接受一個整型值(無符號),按照順序打印它的每一位。例如,輸入:1234,輸出:1 2 3 4

代碼示例:

#include<stdio.h>
void print(unsigned int n)
{
    if (n > 9)
    {
        print(n / 10);
    }
    printf("%d ", n % 10);
}
int main()
{
    unsigned int num = 0;
    scanf("%u", &num);
    //print函數可以打印參數部分數字的每一位
    print(num);
    //函數遞歸 - 自己調用自己
    return 0;
}

輸出結果:

C語言函數的使用方法是什么

代碼分析:

C語言函數的使用方法是什么

對兩個必要條件的理解

存在限制條件,當滿足這個限制條件的時候,遞歸便不再繼續。

C語言函數的使用方法是什么

每次遞歸調用之后越來越接近這個限制條件。

C語言函數的使用方法是什么

如果是遞歸,兩個限制條件必定滿足。

四、遞歸練習

編寫函數不允許創建臨時變量,求字符串的長度:

題目要求不允許創建臨時變量,當前代碼不符合要求。

#include<stdio.h>
#include<string.h>
int my_strlen(char* str)
{
	int count = 0; // 臨時變量
	//printf("%c\n", *s);
	while (*str != '\0')
	{
		count++;
		str++;
	}
	return count;
}
int main() 
{
	//求字符串的長度
	char arr[] = "haha";
	int len = strlen(arr);
	printf("%d\n", len);
	return 0;
}

符合要求的寫法: 

#include<stdio.h>
#include<string.h>
int my_strlen(char* str) 
{
	if (*str == '\0') 
	{
		return 0;
	}
	else 
	{
		return 1 + my_strlen(str + 1);
	}
}
int main() 
{
	//求字符串的長度
	char arr[] = "haha";
	//arr是數組名,數組名是數組首元素的地址
	int len = my_strlen(arr);
	printf("%d\n", len);
	return 0;
}

代碼分析:

C語言函數的使用方法是什么

運行結果:

C語言函數的使用方法是什么

讀到這里,這篇“C語言函數的使用方法是什么”文章已經介紹完畢,想要掌握這篇文章的知識點還需要大家自己動手實踐使用過才能領會,如果想了解更多相關內容的文章,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

枣阳市| 萨嘎县| 进贤县| 义马市| 福清市| 九江县| 乌拉特后旗| 本溪市| 育儿| 清水县| 天水市| 葵青区| 于田县| 华坪县| 宿松县| 通辽市| 小金县| 沈阳市| 札达县| 尚志市| 罗江县| 区。| 阿拉善左旗| 乐都县| 获嘉县| 云林县| 宁国市| 巴彦淖尔市| 连江县| 奉新县| 万盛区| 姜堰市| 九江市| 和田县| 高邮市| 珲春市| 江西省| 镇赉县| 准格尔旗| 历史| 三门峡市|