c語言輸出參數
Ⅰ c語言printf()多參數時的輸出機制如何
int a;
float b;
char c;
printf("%d,%s,%f",a,c,b);
這樣?
Ⅱ c語言中參數表是什麼意思
函數的參數分為形參和實參兩種。形參出現在函數定義中,在整個函數體內都可以使用,離開該函數則不能使用。實參出現在主調函數中,進入被調函數後,實參變數也不能使用。形參和實參的功能是作數據傳送。發生函數調用時,主調函數把實參的值傳送給被調函數的形參從而實現主調函數向被調函數的數據傳送。
函數的形參和實參具有以下特點:
1. 形參變數只有在被調用時才分配內存單元,在調用結束時,即刻釋放所分配的內存單元。因此,形參只有在函數內部有效。函數調用結束返回主調函數後則不能再使用該形參變數。
2. 實參可以是常量、變數、表達式、函數等,無論實參是何種類型的量,在進行函數調用時,它們都必須具有確定的值,以便把這些值傳送給形參。因此應預先用賦值,輸入等辦法使實參獲得確定值。
3. 實參和形參在數量上,類型上,順序上應嚴格一致,否則會發生類型不匹配」的錯誤。
4. 函數調用中發生的數據傳送是單向的。即只能把實參的值傳送給形參,而不能把形參的值反向地傳送給實參。 因此在函數調用過程中,形參的值發生改變,而實參中的值不會變化。
Ⅲ C語言函數中什麼是輸出參數舉個簡單例子
C里沒有類似於C#的指定ref,out的輸入輸出參數
它是通過不同的傳遞參數類型決定其輸入輸出參數的
如果是傳值參數,只能用於輸入參數
如果是引用或指針類型,則即可用於輸入也可用於輸出
如 int fun( int a, int& b, int* c )
a 作為輸入參數
b和c 可輸入也可輸出
Ⅳ c語言return和輸出參數有什麼關系
希望題主能弄清楚以下3個概念:
函數返回值類型:
函數的返回值類型需要在函數定義時指明於函數名左側,返回值類型決定了函數能夠通過return語句返回的值的類型。比如一個函數返回值定義為char型,而函數內部的return語句返回的卻是一個float型,那麼return語句處就會出錯,因為返回的值的類型和事先聲明的函數返回值類型不匹配。(舉個通俗例子:我讓你做完某件事告訴我一個字,結果你做完了卻告訴我一個數,那我和你還能好好溝通嗎?)
return語句:
函數執行時遇到return語句則會結束函數,並將return右側的「量」(變數、常量、字面值等)作為函數的返回值返回給調用方,return右側返回的這個「量」必須和函數定義時指明的函數返回值類型相匹配(或者能夠自動轉換,比如函數返回值指明為double型,函數內部return 1;是沒錯的,因為1是個整數但可以自動轉換為double型的1.0)
輸出參數
輸出參數是一個比較「高級」的概念,有時候我們希望函數能夠「返回多個值」,但函數返回值永遠都只能是一個,那麼這時候我們可以通過令函數的參數為「接收返回值」的變數指針來實現「返回多個值」的效果,此時這些「接收返回值」的變數指針就是「輸出參數」。舉例來說,我們希望一個函數能將一個int數組中的最大值max、最小值min、平均值ave都算出來,但函數的返回值只有能一個,那該怎麼辦?此時我們就可以利用指針來實現「輸出參數」
voidfunc(int*max,int*min,int*ave)
//這個函數返回值是void,但通過3個指針參數,我們實現了將結果「輸出」的目的
//只要調用方用3個int型變數來「接收」輸出結果即可,這就是「輸出參數」
Ⅳ C語言函數中什麼是輸出參數
C語言中的輸出參數應該是指針吧
int max(int a, int b,int *m)//a,b是輸入參數,m是輸出參數
{
*m = a>b?a:b;
return *m;
}
int main()
{
int a=2,b=3,m;
max(a,b,&m);
printf("max=%d\n",m);
}
Ⅵ 在C語言里,printf怎麼輸出2個變數
%d是整數的輸出標識符。要輸出兩個變數,用逗號隔開即可。標識符和變數的順序是相對應的,不能錯。輸出2個變數的代碼修改:
{int a,b,c,sum,sum1;
a=10;
b=20;
c=30;
sum=a+b;
sum1=a+b+c;
printf ("sum=%d/nsum1=%d/n",sum,sum1);}
(6)c語言輸出參數擴展閱讀:
變數可以通過變數名訪問。在指令式語言中,變數通常是可變的;但在純函數式語言(如Haskell)中,變數可能是不可變(immutable)的。
在一些語言中,變數可能被明確為是能表示可變狀態、具有存儲空間的抽象(如在Java和Visual Basic中);但另外一些語言可能使用其它概念(如C的對象)來指稱這種抽象,而不嚴格地定義「變數」的准確外延。
如果按存儲佔用空間來分,變數可以是整型變數,字元型變數,浮點型變數等。當然還有數組,結構體變數等。
變數的命名規則:
變數名必須以字母或下劃線 "_" 開頭。
變數名只能包含字母數字字元以及下劃線。
變數名不能包含空格。如果變數名由多個單片語成,那麼應該使用下劃線進行分隔(比如 $my_string),或者以大寫字母開頭(比如 $myString)。
Ⅶ C語言的輸出參數是什麼跟返回值有什麼關系
1、C語言中,所謂傳參一般調用一個函數時,傳遞過來的參數,否則被調用函數是無法使用調用函數裡面的參數的,除了全局參數等。
2、C語言中的返回值一般一return 的形式出現,就是這個函數結束時,會拋出需要返回的一個值。在調用的函數中可以接收。下面我舉一個完整的例子來說明這幾者的關系。
3、常式:
#include <stdio.h>
int counter(int i);
void main(void)
{
int j,m;
m = 5;
j = counter(m); //此處調用函數counter();並且傳入參數,一個int型的m,
//次函數在結束時將返回一個int型,這里用j來接收
printf("返回值為:%d\n",j);
}
int counter(int i) //這里是函數定義,int counter();說明此函數將會返回一個
{ //int型
//counter(int i);表示在調用此函數時需要傳入一個int型參數
return i + 1; //此處是函數將要返回的值,傳進來的是5,那返回 5 + 1,返回6
}
Ⅷ C語言輸入輸出語句
c語言輸入輸出函數
C語言輸入輸出函數有很多,標准
I/O
函數中包含了如下幾個常用的函數:
scanf,printf,getc,putc,getchar,putchar,gets,puts,fgets,fputs,fgetc,fputc,fscanf,fprintf
等.
int scanf(const char *format, arg_list)
scanf
主要從標准輸入流中獲取參數值,format為指定的參數格式及參數類型,如
scanf("%s,%d",str,icount);
它要求在標准輸入流中輸入類似"son of bitch,1000"這樣的字元串,同時程序會將"son of bitch"給str,1000給icount. scanf函數的返回值為int值,即成功賦值的個數,在上例中如果函數調用成功,則會返回2,所以我們在寫程序時,可以通過語句
if(scanf("%s,%d",str,icount) != 2){...}
來判斷用戶輸入是否正確.
int printf(const char *format, arg_list)
printf
主要是將格式化字元串輸出到標准輸出流中,在stdio.h頭文件中定義了標準的輸入和輸出,分別是stdin,stdout. arg_list可以是變數名,也可以是表達式,但最終都會以值的形式填充進
format中. int getc(FILE *fp) getc主要是從文件中讀出一個字元.常用的判斷文件是否讀取結束的語句為:(ch = getc(fp)) != EOF.EOF為文件結束標志, 定義在stdio.h中,就像EXIT_SUCCESS,EXIT_FAILURE定義在stdlib.h中一樣,文件也可以被理解為一種流,所以當fp
為stdin 時,getc(stdin)就等同於getchar()了. int putc(int ch,FILE *fp) putc主要是把符ch寫到文件fp中去.如果fp為stdout,則putc就等同於putchar()了.
int getchar(void)
getchar
主要是從標准輸入流讀取一個字元.默認的標准輸入流即stdio.h中定義的stdin.但是從輸入流中讀取字元時又涉及到緩沖的問題,所以並不是在屏幕中敲上一個字元程序就會運行,一般是通過在屏幕上敲上回車鍵,然後將回車前的字元串放在緩沖區中,getchar就是在緩沖區一個一個的讀字元.當然也可以在while循環中指定終止字元,
如下面的語句:
while ((c = getchar()) != '#')
這是以#來結束的.
int putchar(int ch)
putchar(ch)
主要是把字元ch寫到標准流stdout中去.
char * gets(char *str)
gets
主要是從標准輸入流讀取字元串並回顯,讀到換行符時退出,並會將換行符省去. int puts(char *str)
puts
主要是把字元串str寫到標准流stdout中去,並會在輸出到最後時添加一個換行符.
char *fgets(char *str, int num, FILE *fp)
str
是存放讀入的字元數組指針,num是最大允許的讀入字元數,fp是文件指針.fgets的功能是
讀一行字元,該行的字元數不大於num-1.因為fgets
函數會在末尾加上一個空字元以構成一個字元串.
另外
fgets
在讀取
到換行符後不會將其省略
.
int fputs(char *str, file *fp)
fputs
將
str
寫入
fp.fputs
與
puts
的不同之處是
fputs
在列印時並不添加換行符
.
int fgetc(FILE *fp)
fgetc
從
fp
的當前位置讀取一個字元
.
int fputc(int ch, file *fp)
fputc
是將
ch
寫入
fp
當前指定位置
.
int fscanf(FILE *fp, char *format,...)
fscanf
按照指定格式從文件中出讀出數據
,
並賦值到參數列表中
.
int fprintf(FILE *fp, char *format,...)
fprintf
將格式化數據寫入流式文件中
.
http://www.cnblogs.com/yaoleiroyal/archive/
2008
/
04
/
03
/1135819.html
字元串輸入:
gets()
char name[20];
printf("Hi,What's your name?\n");
gets(name);
printf("Nice name %s",name);
它使用一個地址把字元串賦予
name
。
char name[20];
char *p;
printf("\nEn,What's your name?\n");
p=gets(name);
printf("%s?Oh,Nice name %s\n",name,p);
get()
的代碼使用
return
關鍵字返回字元串的地址,程序把這個地址分配給指針
p
。
fgets()
fgets()
是為文件
I/O
而設計的,處理鍵盤輸入不是特別方便。
printf("\nHi,What's your name?\n");
p=fgets(name,20,stdin);
printf("%s?Oh,Nice name %s\n",name,p);
*fgets()
的第二個參數說明最大讀入的字元數。如果這個參數值為
n
,那麼
fgets()
就會讀取最
多
n-1
個字元或讀完一個換行符為止。兩個條件滿足任意一個結束。
*fgets()
讀取到換行符,就會把它存到字元串里,而不是想
gets()
那樣丟棄它。
*fgets()
的第三個參數說明讀哪個文件。
從鍵盤上讀數據時,
可以使用
stdin(
代表
standard input)
作為參數。
scanf()
char name1[11], name2[11];
int count;
printf("\nPlease write down 2 names...\n");
count=scanf("%5s %6s",name1,name2);
printf("\nname1:%s\nname2:%s",name1,name2);
scanf()
允許指定輸入字元串長度等格式。上面的程序如果輸入
"liujiajia
liujiajia",
程序將輸出
"name1:liuji
name2:liujia";
字元串輸出:
puts()
char str[15]="hello world";
const char *str2="HELLO WORLD";
puts(str);
puts(str2);
puts(&str[5]);
puts(str2+2);
puts()
顯示字元串時自動在其後添加一個換行符。
puts(&str[5]);
將輸出從
str
的第六個元素開始到字元串結束。
puts(str2+2);
將輸出從
str2
的地址向後移動兩個字元開始到字元串結束。
fputs()
fputs(str,stdout);
fputs(str2,stdout);
fputs(&str[5],stdout);
fputs(str2+2,stdout);
*fputs()
第二個參數表示要寫的文件。可以使用
stdout(
代表
standard output)
作為參數。
*fputs()
不自動輸出換行符,這與
puts()
不太相同。
Ⅸ C語言中如何輸出各種常量
http://ke..com/view/410546.htm 自己看看網路裡面關於printf函數的參數說明就可以了。
輸出指說用 %e參數 ,輸出整數用%d 輸出無符號整數也就是類似1234U這樣的無符號整數常量,末尾帶U的,可以用%u參數,輸出指針用%p
Ⅹ c語言中參數是什麼概念
函數的參數分為形參和實參兩種。
形參出現在函數定義中,在整個函數體內都可以使用,離開該函數則不能使用。實參出現在主調函數中,進入被調函數後,實參變數也不能使用。
形參和實參的功能是作數據傳送,發生函數調用時,主調函數把實參的值傳送給被調函數的形參從而實現主調函數向被調函數的數據傳送。
舉個例子:
定義一個函數s=f(a,b),功能是將a和b的差賦值給s,那麼,a和b就是這個函數的兩個參數。
(10)c語言輸出參數擴展閱讀:
C語言的參數傳遞方式
方法有3種方式:值傳遞、地址傳遞、引用傳遞
tips:
被調用函數的形參只有函數被調用時才會臨時分配存儲單元,一旦調用結束佔用的內存便會被釋放
值傳遞和地址傳遞,傳遞的都是實參的一個拷貝
C語言中實參和形參之間的數據傳遞是單向的「值傳遞」,單向傳遞,只能由實參傳給形參,反之不行
輸出格式並沒有選擇%p而是選擇了%d,因為十進制的數看起來更直觀。
值傳遞
如果只是傳遞值的話:
#include <stdio.h>
//值傳遞傳值
void swap( int x, int y);
int main()
{
int a=2,b=3;
printf("before:實參為a,b a=%d,地址為%d b=%d,地址為%d ",a,&a,b,&b);
swap(a,b);
printf("after:實參為a,b a=%d,地址為%d b=%d,地址為%d ",a,&a,b,&b);
return 0;
}
void swap(int x,int y)
{
int tmp;
tmp=x;
x=y;
y=tmp;
printf("inside:形參為x,y x=%d,地址為%d y=%d,地址為%d ",x,&x,y,&y);
}