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

c語言指針函數形參

發布時間: 2022-01-23 19:44:22

c語言的指針作函數參數

改成下面代碼看看:

#include<stdio.h>

voidabc(int*i,int*j)

{

intm;

m=*i;//指針變數的值也就是地址不能賦值給一般變數
*i=*j;//*i,*j才是指針變數指向的變數的值
*j=m;

}

voidmain()

{

inta,b;

int*pa=&a,*pb=&b;

printf("請輸入a,b的值:");

scanf("%d,%d",&a,&b);

abc(pa,pb);//

printf("a=%d b=%d ",a,b);

}

⑵ C語言指針作為函數參數

#include<stdio.h>
int*fmax(int*,int*);/*函數的聲明和下面的定義參數類型不一致,應該改成指針類型*/
voidmain()
{
intx,y;int*c,*d;
int*pmax;
scanf("%d%d",&x,&y);
c=&x;
d=&y;
pmax=fmax(c,d);
printf("max=%d ",*pmax);
printf("max=%d ",*pmax);
}
int*fmax(int*a,int*b)
{
int*p;
p=*a>*b?a:b;
returnp;
}

⑶ ★C語言 指針作函數參數

首先說明一下,你這段代碼差一個}
應該是
#include
void fun(char *c,int d)
{
*c=*c+1;d=d+1;
printf("%c,%c,",*c,d);
}

main()
{
char b='a',a='A';
fun(&b,a);
printf("%c,%c\n",b,a);

在fun中的輸出,可以說明是對兩個參數作了增一操作*c=*c+1; 說明是對指針指向的內容作+1操作,會影響函數外c指向的內空變化;而d=d+1隻是表示對d這個參數作+1操作,不會對函數外的實際參數變化。
所以第一次輸出的兩個數是b,B 而第二次輸出的應該是b,A.
%e表示按科學記數法輸出浮點數,用在這里是錯誤的。應該是%c.
所以正確的答案應該是b,B,b,A

⑷ C語言中指針作為函數參數的問題。

更正以下樓主的問題補充,swap函數的兩個參數,定義的時候,定義p1和p2,他們都int*類型的,也就是兩個整型指針的類型。主函數傳遞進來的是a和b的地址,swap函數是將兩個地址的值,也就是*p1和*p2交換,達到的效果是將兩個地址上的值交換

⑸ c語言中,函數的形參什麼時候必須是指針

當你需要改變傳遞進來的參數的數值時 要傳給指針

⑹ 關於c語言中指針的指針作為函數參數的問題

clrscr()當然不能用啊 如果你是在VC6.0的環境中編譯的話
這個函數只能在TC中用,在VC中就不能用了
如果用Turboc2.0的話,我記得不用包含那個頭文件,直接就可以用的。它是C的圖形函數,C++里不能用了。
你是不是以前用TC寫程序啊?我也是,剛轉成VC時也不太習慣。VC6.0里包含#include <stdlib.h> 這個文件,想刷屏時就system("cls"); 便能起到相同的效果。

⑺ 關於c語言 指針變數作為函數形參的問題

這里是指針變數,但是它指向的空間是被分配過的.你可以向裡面寫入或者讀出.

⑻ c語言指針的指針做函數參數

你的sort函數定義的時候接受的參數實際上就是指針的指針,char *string[] 也可以寫成char **string;

⑼ c語言指針做函數參數問題:

▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓
int fun(int &a,int&b)是引用是正確的。
你題目中這個函數作用應該是交換兩個數。這種交換函數是相當典型的。不能夠直接用值去交換,而必須用值的地址去交換才能最終轉換。
是考試中常考查的。給個例子你運行看看就知道了:
#include<iostream.h>
void swap1(int a1,int b1)
{
int temp1=a1;
a1=b1;
b1=temp1;
}
void swap2(int &a2,int &b2)
{
int temp2=a2;
a2=b2;
b2=temp2;
}
main()
{
int a=8,b=5;
cout<<"初始時值分別為: a="<<a<<" b="<<b<<endl;
swap1(a,b);
cout<<"不使用地址傳遞後產生交換無變化: a="<<a<<' '<<"b="<<b<<endl;
swap2(a,b);
cout<<"用地址傳遞後產生正確的交換: a="<<a<<' '<<"b="<<b<<endl;
return 0;
}
▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓
---就是不能理解怎樣實現將實參值改變的過程?
實際上是這樣的,看上面的這個例子,swap2(a,b)函數,將實參a,b的值的地址(注意是地址)賦於&a2,&b2。此時a2,b2的在內存中占的地址和a,b在內存中占的地址是一樣的,所以實現了a2和b2的交換也就實現在a和b的交換。a2,b2是對a,b引用它。

⑽ C語言用指針作函數參數

選D
因為第一個參數是地址傳遞,fun(&b,a);中傳入a字元。*c=*c+1將c的值變為b字元。主函數的值改變。
第二個參數是值傳遞,所以在函數中d的值為B字元。但是並不影響主函數的值,所以主函數輸出a的值是A。b的值是b。