笔记:
函数指向或引用内存中的数据。
可以用指针用来存储函数的地址=指向函数的指针。
说内存的时候,指的是程序运行的上下文。
随机存储器,RAM,称为主存。
应用程序的代码段,是用来存放可执行文件拷贝过来的机器码或者指令的。
指令先拷贝到主存,然后执行。
内存:存储指令,还有很多数据。
代码(我运行有点问题):
#include <stdio.h>
#include <stdbool.h>
#include <stdlib.h>
#include <string.h> // 包含字符串处理函数库
#include <math.h>
#include <time.h>
void PrintHello(char *name) {
printf("Hello %s\n",name);
}
int Add(int a, int b) {
return a+b;
}
int main()
{
void (*ptr)(char*);
ptr = PrintHello;
ptr("Tom");
}
实际的函数指针用例:
只写了其中的一个
#include <stdio.h>
#include <stdbool.h>
#include <stdlib.h>
#include <string.h> // 包含字符串处理函数库
#include <math.h>
#include <time.h>
int compare(const void* a, const void* b)
{
int A = *((int*)a);
int B = *((int*)b);
return abs(A) - abs(B);
}
int main()
{
int i, A[] = { -31,22,-1,50,-6,4 };
qsort(A, 6, sizeof(int), compare);
for (i = 0; i < 6; i++) printf("%d", A[i]);
}