国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

c語言可變形參

這篇具有很好參考價值的文章主要介紹了c語言可變形參。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

一般的函數(shù)的參數(shù)列表都是固定的,但是偶爾也會想要根據(jù)情況使用動態(tài)的列表。

1.可變形參的形式

返回類型 函數(shù)名(第一個參數(shù), ...);

可變形參的函數(shù)如上,需要提供第一個參數(shù),后面用...

2.函數(shù)用到的特殊東西

va_list是一種特殊的指針,在使用可變形參之前,需要定義它。
va_start是用來初始化va_list ,使之指向列表開頭
va_arg,用來取得列表上的值,它的參數(shù)有兩個,一個是va_list指針,另一個是列表參數(shù)類型 ?
取得當前的列表數(shù)據(jù)之后,它會讓指針移動指向下一個目標?? ??? ??? ?
va_end,收尾工作

3.程序舉例

將多個字符串合并在一起

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <stdarg.h>


char* Strcat(char* first,...){
	if(first == NULL)
		return NULL;
	
	va_list val;//指向列表的第一位
	va_start(val, first);//使val指向first
	
	char* p = NULL;
	int len = strlen(first);
	while((p = va_arg(val, char*)) != NULL){
		len += strlen(p);
	} 
	printf("%d\n",len);
	va_end(val);
	//分配空間
	p = (char*)malloc(len + 1);
	char *pb = NULL;
	strcpy(p, first);
	//開始復(fù)制字符串
	va_start(val, first);
	while((pb = va_arg(val, char*)) != NULL)
	{
		strcat(p, pb);
	} 
	 
	va_end(val);
	return p;
}

 
int main(int argc, char *argv[]) {
	
	char* p = Strcat("hello", ", ", "wo", "rld", (char*)NULL);
	printf("%s\n", p);
	free(p);
	return 0;
}


4.拓展

當然,以上的例子不足以說明問題,僅僅是展示了使用方法。實際上,第一個參數(shù)很重要,它可以指明后面參數(shù)的類型或者其他信息,有很高的靈活性。,比如printf函數(shù)。有興趣可以深入了解。文章來源地址http://www.zghlxwxcb.cn/news/detail-552083.html

到了這里,關(guān)于c語言可變形參的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔相關(guān)法律責任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • 為什么說 Go 語言字符串是不可變的?

    原文鏈接: 為什么說 Go 語言字符串是不可變的? 最近有讀者留言說,平時在寫代碼的過程中,是會對字符串進行修改的,但網(wǎng)上都說 Go 語言字符串是不可變的,這是為什么呢? 這個問題本身并不困難,但對于新手來說確實容易產(chǎn)生困惑,今天就來回答一下。 首先來看看它

    2024年02月07日
    瀏覽(19)
  • 【Golang】Golang進階系列教程--為什么說 Go 語言字符串是不可變的?

    【Golang】Golang進階系列教程--為什么說 Go 語言字符串是不可變的?

    最近有讀者留言說,平時在寫代碼的過程中,是會對字符串進行修改的,但網(wǎng)上都說 Go 語言字符串是不可變的,這是為什么呢? 這個問題本身并不困難,但對于新手來說確實容易產(chǎn)生困惑,今天就來回答一下。 首先來看看它的底層結(jié)構(gòu): 和切片的結(jié)構(gòu)很像,只不過少了一個

    2024年02月14日
    瀏覽(98)
  • 全面理解C++函數(shù)最難理解的部分:數(shù)組形參,函數(shù)指針,以及函數(shù)指針作為形參

    我提到的這些部分,是我在自學C與C++中遇到的比較困難的點。因為初學者的編程,不太容易使用到這些點,所以很容易造成遺忘,并且自己寫很容易出錯。 最近在看標準C庫的源碼的時候遇到了這樣的困惑,就是關(guān)于函數(shù)指針,或者說,把一個函數(shù)作為另一個函數(shù)的參數(shù)的這

    2024年02月07日
    瀏覽(25)
  • Python之函數(shù)-形參和返回值

    可以有缺省值,定義時,如果沒有提供該參數(shù),動用缺省值. 缺省值的定義往后放 5種 1、普通形參:可以有缺省值,2種傳實參方式都可以用 2、*args 可變僅位置形參,只能接收按照位置傳入的實參,可以接收0個或任意個,沒有缺省值 3、**kwargs 可變僅形參,只能接收關(guān)

    2024年02月06日
    瀏覽(26)
  • python中的形參和實參以及參數(shù)傳遞方式

    在編程語言中,函數(shù)定義時用的是形參,調(diào)用時用的是實參。 形參,全稱為\\\"形式參數(shù)\\\",不是實際存在的變量,又稱虛擬變量。形參是在定義函數(shù)名和函數(shù)體的時候使用的參數(shù), 目的是用來接收調(diào)用該函數(shù)時傳入的參數(shù) 。 實參,全稱為\\\"實際參數(shù)\\\",是在調(diào)用時傳遞給函數(shù)的

    2024年02月02日
    瀏覽(24)
  • GoogLeNet卷積神經(jīng)網(wǎng)絡(luò)輸出數(shù)據(jù)形參分析-筆記

    GoogLeNet卷積神經(jīng)網(wǎng)絡(luò)輸出數(shù)據(jù)形參分析-筆記 分析結(jié)果為: 輸入數(shù)據(jù)形狀:[10, 3, 224, 224] 最后輸出結(jié)果:linear_0 [10, 1] [1024, 1] [1] 子空間執(zhí)行邏輯 其中拼接張量情況為: 拼接代碼:paddle.concat([p1, p2, p3, p4], axis=1) 如 p1=[10,64,5,6,56] p2=[10,128,56,56] p3=[10,32,56,56] p4=[10,32,56,56] 拼接后結(jié)果

    2024年02月14日
    瀏覽(21)
  • ResNet50卷積神經(jīng)網(wǎng)絡(luò)輸出數(shù)據(jù)形參分析-筆記

    ResNet50卷積神經(jīng)網(wǎng)絡(luò)輸出數(shù)據(jù)形參分析-筆記

    ResNet50卷積神經(jīng)網(wǎng)絡(luò)輸出數(shù)據(jù)形參分析-筆記 ResNet50包含多個模塊,其中第2到第5個模塊分別包含3、4、6、3個殘差塊 50=49個卷積(3+4+6+3)*3+1和一個全連接層 分析結(jié)果為: 輸入數(shù)據(jù)形狀:[10, 3, 224, 224] 最后輸出結(jié)果:linear_0 [10, 1] [2048, 1] [1] ResNet50包含多個模塊,其中第2到第5個模

    2024年02月14日
    瀏覽(59)
  • c++中,引用作為形參的使用方法和作用

    當在 C++ 函數(shù)中傳遞參數(shù)時,可以使用引用作為形參。引用是 C++ 中的一種特殊數(shù)據(jù)類型,它允許將變量的別名傳遞給函數(shù),從而允許函數(shù)訪問和操作原始變量。在函數(shù)參數(shù)中使用引用有以下幾種用法和用途: 當一個函數(shù)需要修改傳遞進來的變量的值時,可以將變量作為引用

    2024年02月09日
    瀏覽(43)
  • PTA 6-8 用指針操作數(shù)組輸入輸出元素(指針做形參)

    從鍵盤輸入n(n=10),n代表數(shù)組元素個數(shù),對數(shù)組進行所有元素的輸入輸出,輸入輸出功能在fun函數(shù)中實現(xiàn),主函數(shù)不要動,要求用指針法操作數(shù)組,不要用下標法。 函數(shù)接口定義: 裁判測試程序樣例 輸入格式: 先輸入數(shù)組的元素個數(shù),然后從鍵盤輸入元素 輸出格式: 輸出數(shù)

    2024年04月10日
    瀏覽(17)
  • 【Java探索之旅】方法的概念 定義 執(zhí)行流程 實參與形參的交互

    【Java探索之旅】方法的概念 定義 執(zhí)行流程 實參與形參的交互

    ?? 嶼小夏 : 個人主頁 ??個人專欄 : Java編程秘籍 ?? 莫道桑榆晚,為霞尚滿天! 方法是Java編程中非常重要的概念,它能夠幫助我們組織代碼、實現(xiàn)代碼的重復(fù)使用,并使代碼更加清晰易懂。本文將介紹方法的概念、定義以及調(diào)用執(zhí)行過程,同時解釋實參和形參之間的關(guān)

    2024年04月14日
    瀏覽(26)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包