當前位置:首頁 » 編程語言 » c語言形參變數的值
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

c語言形參變數的值

發布時間: 2023-07-06 09:05:09

c語言形參的值能不能傳遞給實參

形參和實參擁有分別的存儲空間,即便是指針傳遞,改變的也只可能是這個指針變數所指向的內容,而不是指針變數本身的值,也即,如有指針變數p,那對實參的變化,有可能改變的也只是*p的值,而不是p本身的值。

實參和形參在英文中,argument和parameter經常可以互換使用,但是C99標准規定了:

對於actualargument或actualparameter使用術語argument(譯為實參);對於formalargument或formalparameter使用術語parameter(譯為形參)。

為遵循這一規定,我們可以說形參是變數,實參是函數調用提供的值,實參被賦給相應的形參。因此,在上述示例中,times是pound()的實參,n是pound()的形參。類似地,在函數調用pound(times+4)中,表達式times+4的值是該函數的實參。

(1)c語言形參變數的值擴展閱讀

函數的調用

第1個函數調用是pound(times),times的值5被賦給n。因此,printf()函數列印了5個井號和1個換行符。第2個函數調用是pound(ch)。

這里,ch是char類型,被初始化為!字元,在ASCII中ch的數值是33。但是pound()函數的參數類型是int,與char不匹配。

程序開頭的函數原型在這里發揮了作用。原型(prototype)即是函數的聲明,描述了函數的返回值和參數。pound()函數的原型說明了兩點:

-該函數沒有返回值(函數名前面有void關鍵字);-該函數有一個int類型的參數。

② c語言中的實參與形參

在定義函數時函數名後面括弧中的變數名稱為形參;在主調函數中調用一個函數時,函數名後面括弧中的參數稱為實參
函數point(char *p) {p+=3;} 定義時,這里的p就是形參,起傳遞參數的作用,沒有具體值,但是它不能改變主程序中的p(形參和實參是兩個相對應的變數,佔有兩個不同的存儲空間,形參的值改變並不影響實參的值,兩個是相互獨立的。要想改形參里的值,必須採用傳地址,即:將實參的地址傳給形參,使形參和實參指向同一個值,這樣改變形參,就等於改變了實參正如:
#include<stdio.h>
void point(char*& p) {p+=3;}
void main()
{
char b[4]={'a','b','c','d'}, *p=b;
point(p);
printf("%c\n", *p);
}

③ 在c語言中怎樣使形參值改變實參值也跟著改變

在C裡面 是無法做到形參改變 實參值同步改變的。
只能通過傳地址的方式
即參數類型為指針
這樣 形參指向空間修改,可以使得實參指向空間同步修改,因為是同一塊內存區域。

另外,在C++中,可以通過引用傳參,來實現你說的目的。