当前位置:首页 » 编程语言 » 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;
}
//---------------------------------------------------------------------------