1樓:
樓主你好。
#include
int main()
;printf("修改前,陣列元素的值:");
//**段1
print_array(a, 5);
printf("修改後,陣列元素的值:");
//**段2
change_values(a, 5, 3);
print_array(a, 5);
return 0;
}//函式功能:修改一位陣列元素的值,規則是:新值=原值*k//引數:
p是指標變數,存放一位陣列首地址,n是元素的個數,k是乘數void change_values(int *p,int n,int k)
}//函式功能:輸出一位陣列元素的值
void print_array(int *p,int n) //引數:p是指標變數,存放一位陣列首地址
printf("\n");
}輸出:
修改前,陣列元素的值:10 15 20 25 30修改後,陣列元素的值:30 45 60 75 90press any key to continue
2樓:匿名使用者
你的k到底是幾啊、?以8為例
**1change_values(a,5,8);
**2print_array(a,5);
**3int i;
for(i=0;i
*(a+i)=*(a+i)*k;
**4int j;
for(j=0;j
printf("%d ",*(a+i));
好久沒動c了。不知道有沒有錯誤。臨時這臺機器上沒裝編譯器,試試吧
3樓:于于祥祥
這。。。。。。。
自己寫撒真心的
4樓:微微賺
這麼給你解釋吧,指標就相當是一個門牌號。第一個呢,是因為f()函式的引數是指標,就是「門牌號」,所以他們交換的時候是把門牌號進行了交換。所以當你第二次進行訪問的時候,原來a房間變成了b房間,所以當你想要讓a房間裡的人出來的時候,這個時候原來住在裡面的b君就出來了。
所以發生了交換。
第二個呢,傳的是形參,形參就是把a君複製一個(我們理解為克隆一個a君),然後克隆一個b君,最後把克隆人交換。然後我們輸出的時候,我們卻要a房間裡的人,那個時候,a君還在自己的房間,當然他們出來的時候,就是沒有交換了。如果,要交換,我們可以輸出克隆人。
那麼看到的結果就是已經發生了交換。
我把第二個**,給你稍微改下,就是輸出克隆人,那麼你就會看到,我們原來交換的只是克隆人了。
**********==
第二個#include
void main()
void f(int x,int y)
輸入5,9
輸出9,5
**********=
有不明白的繼續追問!
c語言這個f函式再指標
5樓:兄弟連教育北京總校
c語言中, 函式
名也稱為函式的指標,所以c語言中函式名就是一
個指標。
1,例如:
showmenu是一個函式名,可以看到他的值是一個地址。
&showmenu是對函式取地址,指向和showmenu同樣的地址。
可以看出,showmenu是佔用一個位元組的,而作為指標&showmenu卻佔用四個位元組。
所以,函式名佔用空間的。
2,函式指標
指向函式的指標包含了函式的地址,可以通過它來呼叫函式。宣告格式如下:
型別說明符 (*函式名)(引數)
其實這裡不能稱為函式名,應該叫做指標的變數名。這個特殊的指標指向一個返回整型值的函式。指標的宣告筆削和它指向函式的宣告保持一致。
指標名和指標運算子外面的括號改變了預設的運算子優先順序。如果沒有圓括號,就變成了一個返回整型指標的函式的原型宣告。
例如:void (*fptr)();
把函式的地址賦值給函式指標,可以採用下面兩種形式:
取地址運算子&不是必需的,因為單單一個函式識別符號就標號表示了它的地址,如果是函式呼叫,還必須包含一個圓括號括起來的參數列。可以採用如下兩種方式來通過指標呼叫函式:
x=(*fptr)(); x=fptr();
第二種格式看上去和函式呼叫無異。但是有些程式設計師傾向於使用第一種格式,因為它明確指出是通過指標而非函式名來呼叫函式的。下面舉一個例子:
void (*funcp)(); void filefunc(),editfunc();
main() void filefunc()
void editfunc()
程式輸出為:
filefunc editfunc
6樓:
28) f的呼叫並不會改變abc的值,所以還是原值4,3,5 選d
29)q為null,不能取內容,所以*q=0是錯誤的,選a
關於c語言 指標,函式呼叫的問題
關於c語言指標函式的使用問題
7樓:莊政警
你的**裡犯了c語言裡的一個很常見的錯誤:函式返回了一個區域性變數地址int *add(int a, int b)int* p = add(a, b); //p指向的記憶體隨時可能被改寫,你看到的正好就是輸出完以後它就變了,(因為add函式從執行完到輸出間隔的時間"很短",3還存在,而從程式暫停到你觀察這段時間"很長",記憶體已經被修改了,你可以再輸出一次*p看看)
你把c定義成靜態的,再看看
int *add(int a, int b)
c語言初學 有關函式和指標的一個問題?
8樓:最大的_大寶寶
function是一個函式。f1是一個函式指標,用於呼叫function。題目寫得有點複雜,簡化一下是這樣的,兩種呼叫方式都可以:
9樓:瀋陽_小凡
(*f1)就是function的函式。而且s是常量的指標,是不可以傳給變數指標的。
c語言指標呼叫函式問題,急求解釋(本題是《c和指標》上的題目)
C語言指標函式,c語言中指標怎麼使用?
應該是的,還可以用f a i 的形式。去程式設計嗎?我學這些的是一頭霧水。c語言中指標怎麼使用?1 使用場景 使用指標時,必須將它指向一個變數的地址或者為它分配 空間方能使用,如下所示 include include int main int argc,char const argv int b,d...
c語言符指標和字元陣列的區別c語言字元指標和字元陣列的區別
首先第一點,非常重要的一點 指標和陣列是不同的兩個型別!我們從可以從c語言標準文件中得知 iso iec 9899 1999 programing language c 6.2.5 types 20 這說明了什麼是陣列型別 同樣在20 說明了什麼是指標型別。在瞭解了兩種型別的基礎上,我們瞭解陣列和指...
c語言pow 函式問題,C語言pow 函式問題。
應該浮點型整型數點面資料丟失造精度準確程式實參a,b,c都整型所warning資料精度丟失 樓下的說的都對,那我給你提供一個另外的方法的,直接不使用math標頭檔案裡的函式,利用其原理自己編寫一個可以隨意改變型別的函式。這是int的。include int pow int x,int y void ...