c语言 帮我看看错误在哪该怎么写, *MAX是一个返回指针值的函数

供稿:hz-xin.com     日期:2025-01-21
C语言如何声明一个返回函数指针的函数?

C语言指向函数的指针承载的信息比较复杂,组织起来要素要写全。根据指向函数的指针的书写语法,下面的代码就是一个返回函数指针的函数:
int (*f(void))(int){//f是函数,没有参数,返回指向一个函数的指针;这个被指向的函数有一个int型形参,且返回一个int值
return fun;//fun是个函数名,必须具备一个int形参、返回int值的要求
}
以下代码可以验证上述函数的正确性:
//#include "stdafx.h"//If the vc++6.0, with this line.#include "stdio.h"int fun(int n){ printf("abcdef
"); return n;}int (*f(void))(int){ return fun;}int main(void){ printf("%d
",f()(100));//调用函数f,通过f返回的指针用100调用函数fun return 0;}输出是:
abcdef
100

打在函数和变量前面的如(int *) 都叫做强制类型转换,意思就是类型变了,但是原来是什么值 还是什么值,比如原来是整型数15,强制转换成整型指针(0X0000000f),值本身没有任何变化的,只是为了符合所赋给变量的类型而以,使得编译器编译时不会给出警告。

函数声明的方式不对
int *max(int (*p)[4]);
应该写成 int* max(int *p);
下面定义的时候也是这样
这里没问题了可能还是达不到你的预期效果,没太明白你的程序要干什么

c语言 帮我看看错误在哪该怎么写, *MAX是一个返回指针值的函数_百度...
int *max(int (*p)[4]);应该写成 int* max(int *p);下面定义的时候也是这样 这里没问题了可能还是达不到你的预期效果,没太明白你的程序要干什么

C语言简单程序,帮看看哪错了
错误点有3个:输入一个实数那行有个引号用了中文符,应该改为英文符;最后输出-a那段语句后面没有写“;”;定义变量a时为双精度浮点数,而输入时存为了单精度浮点数,存在溢出故障,会导致运行错误,见下图:应该改为如下 include<stdio.h> main(){ double a;printf("请输入一个实数:");scanf(...

C语言数组编程 帮我看看哪里错了
cout<<"数组元素最大值:"<<max<<",在数组中的位置:"<<pos_max<<endl;cout<<"数组元素最小值:"<<min<<",在数组中的位置:"<<pos_min<<endl;}

C语言开关灯问题,麻烦大神们帮我看看这个程序哪里错了啊,结果不对...
两个错误:1、int a[6000]={1};这句。你这只是将a[0]赋值1,其他都是0,数组默认以0填充,应该改为:int a[6000];for(i=0;i<6000;i++)a[i]=1;2、第二层循环里:if(a[j]==0)a[j]=1;if(a[j]==1)a[j]=0;这个语句把所有的灯都关闭了,因为如果关了,就打开;打开后又...

易语言 看看错在哪了 错误(10031): 变量指定格式错误。
变量"列表项"在"列表框1.取项目文本 (列表项)"中可以是0,但在数组变量"名称 [列表项]"中的"列表项"不能为0 你可以这样编写:.计次循环首 (列表框1.取项目数 (), 列表项)名称 [列表项] = 列表框1.取项目文本 (列表项 - 1).计次循环尾 ()

C语言,帮忙看看我哪里有问题,运行后它说“变量aa周围的堆栈已损坏...
1. 图中第一个红色框内最好改成指针而不是数组,传一个地址就可以,int *n;当然如果题目定死了那不改也可以;2. 图中第二个红色框要写成*n = m;你传一个变量的地址不能当数组用,超过一次就会占用别的内存空间,导致不确定的错误。

我是c语言小白,问问大神帮我看看编写的简单程序这哪里出错了?_百度...
#include<stdio.h> 输入代码时忽视输入法隐藏的错误 表面上看都是一样的代码,但是第二行就有错误,是全角和半角的不同,再看:正确编译运行 所以你的代码没有任何问题,但是要注意代码输入的方法。以前回答了很多,有时间可以看看我最近回答c语言问题:网页链接 网页链接 网页链接 网页链接等等。

C语言,大家来看看我这里哪写错了!
Save函数中文件打开方式不对,不是只读“r”,而应该是写和建立“w+”:void Save(void){FILE * fp = 0;int i = 0;fp = fopen("C:\\\\3\\\\dhsi.txt", "w+");\/\/r改为w+就行if (fp == NULL){error("打开存档失败");return;\/\/退出}i = fprintf(fp, "%d %d", gfpe, FtxSrc...

...24小时制显示该时间,哪位大神帮我看看错误在哪里。在线
把文字部分拍大一点。浪费了面积,代码根本没法看清。scanf("%d:%d%s",&x,&y,ch);if(ch[0]=='p'&&ch[1]=='m'){z=x+12;printf("...%d:%d\\n",z,y);} else if(ch[0]=='a'&&ch[1]=='m')printf("...%d:%d\\n",x,y);...

关于C语言编写程序的一个疑问 高手帮忙看看我的程序哪错了
看了你的代码觉得,你在C语言的语法规则上还有待提高啊,在此举出你所给出的代码的若干错误。首先,你的代码不完整。第9、11、13行要定义三个100行的二维字符数组,如果仅仅是类似char adj[100][12]={"开心的"}的定义;这样adj[1]到adj[99]这99个词都会是空值(ASCII码为0),若用printf()...