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

c語言指針函數

發布時間: 2022-01-22 00:05:45

c語言指針型函數

注意sum是自動變數,返回sum的地址,這是個很危險的動作。
正確的做法是把sum定義成靜態變數 或者 全局變數。
至於加不加printf結果不一樣,這與自動變數在棧上的分配動作。

Ⅱ 關於c語言指針調用函數。。。。。。。。

第一行,定義一個函數指針p,該函數有兩個整型形參,且返回整型數據;第二行,讓函數指針p指向一個地址,該地址應該就是前面說到的那種函數的地址,需要對這個地址做強制類型轉換為同類型的函數指針,才能正確賦值給p。

Ⅲ C語言指針與函數調用

#include<stdio.h>
#include<stdlib.h>
intave(intn,int*a);
intmain()
{
inti,n,*a;
printf("pleaseinputnumbern:");
scanf("%d",&n);
a=(int*)malloc(n*sizeof(int));
printf("pleaseinput%dnumbers: ",n);
for(i=0;i<n;i++)
scanf("%d",a+i);
printf("Theaveragenumberis%d ",ave(n,a));
}
intave(intn,int*a)
{
inti,sum=0;
for(i=0;i<n;i++)
sum+=*(a+i);
returnsum/n;
}

Ⅳ c語言函數與指針

先學指針再學函數為好。函數調用,若想通過參數帶回函數運算結果,要用指針。函數調用,若想通過參數傳入可變大小的數組,要用指針。 這時若缺乏 指針的知識,則難以學好函數的書寫。當然,你可以先學簡單的函數,參數不用指針的,只通過函數返回或全局量傳遞運算結果,只用固定大小的數組。學會後,再學指針和 用指針做參數的函數。這樣,路走得慢些,但學得可能扎實些。

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

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

Ⅵ C語言指針函數,求指針值

你的show函數返回的不是字元串的最後一個字元,而是字元串的結束符「\0」
所以,怎麼都不對!

char *show(char c[])
{
char *p;

p=c; ////////這里沒有用,for里也有p=c的
for (p=c;*p!='\0';p++);

return p-1;////////這里就對了
}

Ⅶ C語言——指向函數的指針

跟變數的指針差不多,沒什麼區別,變數可以做參數 ,函數也可以做參數.只要類型一樣就可以傳入.返回值 和 參數類型個數.函數也可以理解為一個變數來著,可以取得返回值作為函數的值.像這樣就可以在另一個函數裡面調用四種效果,雖然這樣寫也沒看到什麼比較方便的

Ⅷ c語言,指針,函數,字元串

如下,另一個相同的問題也是你提的吧?! 請一並選出最佳答案吧!謝謝!

*********************************************

1.
//---------------------------------------------------------------------------
#include <stdio.h>

void fun(char *a)
{
int i=0;
char *b;
while (a[i]=='*') ++i;
b=a+i;
while (*b)
*a++=*b++;
*a=0;

}

int main(void)
{
char a[]="****A*B+CD58****";
fun(a);
puts(a);
return 0;
}

//---------------------------------------------------------------------------

2.
//---------------------------------------------------------------------------

#include <stdio.h>

void fun(char *a)
{
int i=0;
char *b,*c;
while (a[i]=='*') ++i;
while (a[i])
if (a[i]=='*') {
b=a+i+1;
c=a+i;
while (*b)
*c++=*b++;
*c=0;
}

else i++;
}

int main(void)
{
char a[]="****A*B+CD58****";
fun(a);
puts(a);
return 0;
}
//---------------------------------------------------------------------------