//
// main.c
// c指针
//
// Created by stevenchang on 9/4/15.
// Copyright (c) 2015 cz. All rights reserved.
//
#include <stdio.h>
void printfArray(int array[]); //声明一个函数,用于打印数组元素
char *returnName(); //返回一个字符串类型
int *returnArray(); //返回一个数组
void printfValue();
int sum(int a, int b);
int main(int argc, const char * argv[]) {
/**
返回指针的函数
*/
char *name = returnName();
printf("name=%s\n", name);
int *p = returnArray();
//如果将下面两行注释打开,那么只能输出p[0]的值,后面全部为0
//通过测试,可以知道p[1],p[2]的值被释放;这个还有待验证
// printf("%d\n",p[0]);
// printf("%d\n",p[1]);
printf("%d\n",p[2]); //是可以拿到数组的元素值
/**
指向函数的指针
*/
//定义一个指针变量指向函数
void (*p1)(); //void 代表指针变量p所指向的函数返回值为void,(*p1)这是固定写法不可变,()代表指针变量指向的函数参数为空
p1 = printfValue; //变量p1指向函数printfValue
printfValue(); //传统做法
(*p1)(); //使用指针
p1(); //使用指针,简洁方法
int (*p2)(int a ,int b); //int代表指针变量p2所指向的函数返回值为int,(*p2)固定写法不可变,(int a,int b)代表指针变量p2所指向的函数的参数
p2 = sum; //将指针变量指向sum函数
int c1 = sum(10, 24);
int c2 = (*p2)(23,4);
int c3 = p2(34,34);
printf("c1 is %d\n",c1);
printf("c2 is %d\n",c2);
printf("c3 is %d\n",c3);
return 0;
}
void printfValue() {
printf("adfafafas\n");
}
int sum(int a , int b) {
return a + b;
}
c语言指向函数的指针和返回指针的函数
最新推荐文章于 2024-11-20 09:12:15 发布