函数指针学习笔记

来源:互联网 发布:官方同花顺交易软件 编辑:程序博客网 时间:2024/05/01 03:14

给出常用的C变量的定义方式: 
a) 一个整型数(An integer) 
b) 一个指向整型数的指针(A pointer to an integer) 
c) 一个指向指针的的指针,它指向的指针是指向一个整型数(A pointer to a pointer to an integer) 
d) 一个有10个整型数的数组(An array of 10 integers) 
e) 一个有10个指针的数组,该指针是指向一个整型数的(An array of 10 pointers to integers) 
f) 一个指向有10个整型数数组的指针(A pointer to an array of 10 integers) 
g) 一个指向函数的指针,该函数有一个整型参数并返回一个整型数(A pointer to a function that takes an integer as an argument and returns an integer) 
h) 一个有10个指针的数组,该指针指向一个函数,该函数有一个整型参数并返回一个整型数( An array of ten pointers to functions that take an integer argument and return an 

integer ) 

答案是: 
a) int a; // An integer 
b) int *a; // A pointer to an integer 
c) int **a; // A pointer to a pointer to an integer 
d) int a[10]; // An array of 10 integers 
e) int *a[10]; // An array of 10 pointers to integers 
f) int (*a)[10]; // A pointer to an array of 10 integers 
g) int (*a)(int); // A pointer to a function a that takes an integer argument and returns an integer 
h) int (*a[10])(int); // An array of 10 pointers to functions that take an integer argument and return an integer 



个人学习笔记,供以后学习回顾。在看到函数指针数组后,供以后学习讨论。
#include <stdio.h>#include <stdlib.h>
int (*p())[10]{// 返回值是 整形指针的函数 p, 并且 该指针指向 一个十个元素的数组;?是否和函数指针数组有关?//该注释对否?欢迎指正。int (*m)[10];int i;m = (int (*)[10])calloc(10, sizeof(int));if (m == NULL){printf("calloc error.\n");exit(1);}for (i = 0; i < 10; i++){*(*m+i) = i+1;}return m;}
int * p_jiangong() {//返回值是 整形指针 的函数 p_jiangong(),“int p_jiangong() {}”的意思是返回值是 整形 的函数 p_jiangong()int *n;n = (int(*))calloc(1, sizeof(int));*n = 1000;printf("\nn is %d.\n", *n);return n;}int main(){int (*a)[10];int i;a = p();for (i = 0; i < 10; i++){printf("%d ", *(*a+i));}p_jiangong();printf("\ndone\n"); return 0;}
运行结果为:




	
				
		
原创粉丝点击