成都网站建设设计

将想法与焦点和您一起共享

c语言指针函数申明,c语言指针声明

C语言指针函数

char *match (char*s,char ch1,char ch2)

为涟水等地区用户提供了全套网页设计制作服务,及涟水网站建设行业解决方案。主营业务为成都做网站、成都网站设计、涟水网站设计,以传统方式定制建设网站,并提供域名空间备案等一条龙服务,秉承以专业、用心的态度为用户提供真诚的服务。我们深信只要达到每一位用户的要求,就会得到认可,从而选择与我们长期合作。这样,我们也可以走得更远!

函数各部分的含义:

第一个char,一般是代表函数的返回值是一个字符。但是它后面有一个*,应该把char和*连起来看,就是char*了。

那么,第一个就是char*,代表函数的返回值是一个字符指针(地址)。

match是函数的名字。

括号内是函数的参数,多个参数用逗号分隔。本例共有3个参数:char*s,char ch1,char ch2,第一个是s,类型为char*型(字符指针型),后两个ch1、ch2都是char型(字符型)。

到这儿,你就知道去掉*match前的*为什么就不对了。

另外,括号里参数类型(如包含指针)跟函数返回值的类型无关。函数名前加不加*只与函数返回值的类型有关。

C语言指向 字符串数组 的指针 的声明方式

#include stdio.h

int main(void)

{

char * test[] = {"1111", "2222", "3333"};

char * p[][3] = {{"1111", "2222", "3333"}};

puts(p[0][0]);

return 0;

}

//注意char * (*p)[] = 。。。 并不是声明数组,声明数组的方式是char * p[][3] = {{},{},{}...};

//char * (*p)[]只是声明变量,常用作函数的声明中作为形参来使用。

C语言(复杂类型的指针),解释下面的声明语句

1 pf是个函数,它的返回值是个int*,它的参数是一个函数指针,函数指针指向的函数返回值为float型,参数为int型;

2 pf是个函数,它的参数是char*,它的返回值是个数组指针,数组指针指向一个长度为5的整型数组;

3 p是个数组,数组中每个元素都是一个函数指针,函数指针指向的函数返回值为char*,参数为char*,char*;

4 pf是个函数指针,函数指针指向的函数参数是char*,它的返回值是个数组指针,数组指针指向一个长度为3的整型数组;

先来4个~~

~~~~~~继续~~~~~

char *(*a[2])(char(*)(int*),char *);

a是一个数组,数组由两个元素构成,每个元素都是一个函数指针,函数指针指向的函数返回值为char*,指向的函数的参数有两个,第一个是个函数指针,函数指针指向的函数返回值为char,参数为int*,第二个参数是char*;

int(*(*pf[3])(char*))(char *);

pf是个数组,数组由三个元素构成,每个元素是一个函数指针,函数指针的参数是char*,返回值是一个函数指针,函数指针的参数是char*,返回值是int;

char *(*(*(*(f[2])(char *))[2])(char *,char *);

这个~~括号都不匹配 是不打错了- _ -!

--------------------------------------------------------------------------------------------------------------

以上为小子一些不成熟的分析,欢迎各位大神拍砖指点^_^.....

-----------------------------觉得我头像可爱的点赞 !!!

c语言中函数指针是什么 有什么用 举个实例

函数指针是指向函数的指针变量。 因而“函数指针”本身首先应是指针变量,只不过该指针变量指向函数。这正如用指针变量可指向整型变量、字符型、数组一样,这里是指向函数。

函数指针有两个用途:调用函数和做函数的参数。

函数指针的声明方法为:

返回值类型 ( * 指针变量名) ([形参列表]);

如:

int func(int x); /* 声明一个函数 */

int (*f) (int x); /* 声明一个函数指针 */

f=func; /* 将func函数的首地址赋给指针f */

或者使用下面的方法将函数地址赋给函数指针:

f = func;

赋值时函数func不带括号,也不带参数,由于func代表函数的首地址,因此经过赋值以后,指针f就指向函数func(x)的代码的首地址。

下面的程序说明了函数指针调用函数的方法:

#includestdio.h

int max(int x,int y){return (xy? x:y);}

int main()

{

int (*ptr)(int, int);

int a, b, c;

ptr = max;

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

c = (*ptr)(a,b);

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

return 0;

}

C语言中如何声明文件指针?

c语言 文件指针名=fopen(文件名,使用文件方式)函数参数说明

作者[fanld] 发表于[2008-11-18 16:10:00]

格式:文件指针名=fopen(文件名,使用文件方式)

参数:

文件名 意义

"C:\\TC\\qwe.txt" 文件C:\TC\qwe.txt

"qwe.txt" 和程序在同一目录下的qwe.txt

文件使用方式   意 义

“rt”只读打开一个文本文件,只允许读数据

“wt”只写打开或建立一个文本文件,只允许写数据

“at”追加打开一个文本文件,并在文件末尾写数据

“rb”只读打开一个二进制文件,只允许读数据

“wb”   只写打开或建立一个二进制文件,只允许写数据

“ab”  追加打开一个二进制文件,并在文件末尾写数据

“rt+”  读写打开一个文本文件,允许读和写

“wt+”  读写打开或建立一个文本文件,允许读写

“at+” 读写打开一个文本文件,允许读,或在文件末追加数据

“rb+”  读写打开一个二进制文件,允许读和写

“wb+”  读写打开或建立一个二进制文件,允许读和写

“ab+”  读写打开一个二进制文件,允许读,或在文件末追加数据

对于文件使用方式有以下几点说明:

1. 文件使用方式由r,w,a,t,b,+六个字符拼成,各字符的含义是:

r(read): 读

w(write): 写

a(append): 追加

t(text): 文本文件,可省略不写

b(banary): 二进制文件

+: 读和写

2. 凡用“r”打开一个文件时,该文件必须已经存在,且只能从该文件读出。

3. 用“w”打开的文件只能向该文件写入。若打开的文件不存在,则以指定的文件名建立该文件,若打开的文件已经存在,则将该文件删去,重建一个新文件。

4. 若要向一个已存在的文件追加新的信息,只能用“a ”方式打开文件。但此时该文件必须是存在的,否则将会出错。

5. 在打开一个文件时,如果出错,fopen将返回一个空指针值NULL。在程序中可以用这一信息来判别是否完成打开文件的工作,并作相应的处理。

如果成功的打开一个文件, fopen()函数返回文件指针, 否则返回空指针(NULL)。由此可判断文件打开是否成功。

C语言函数指针定义

在最上面加一句这样的定义

typedef void*(*pFn)();

pFn可以这样理解:首先pFn是一个指针,指针指向一个函数(或者说pFn是一个函数指针),此函数返回一个无类型的指针。最终定义的变量及函数都是指针罢了,不过是指针的类型不同。所以在编译时会有警告,说指针类型不匹配。但对于程序来讲,都是可以在特定的上下文中使用的。

运行结果是

t1,t2交替出现。

其实void也可以换为其它的类型如int, double等

又想到一个很好的办法:

这次编译不会有警告,运行也不会出错。

示例代码如下所示

#include stdio.h

long t1();

long t2();

int main()

{

long(*fn)()= (long (*)()) t1 ;

while(1){

fn = (long (*)()) fn();

}

}

long t1()

{

printf("t1\n");

return (long)t2 ;

}

long t2()

{

printf("t2\n");

return (long)t1 ;

}


标题名称:c语言指针函数申明,c语言指针声明
文章转载:http://chengdu.cdxwcx.cn/article/hsdojd.html