章节1:空类型“函数指针”
1. 如何对空类型函数指针进行赋值并调用函数
void f1(int a){
printf("a is:%d\n",a);
}
int main(int argc, char *argv[]) {
void (*p)(void);
p = f1;
((void(*)(int))p)(2);//需要对p进行强转,否则会报错
return 0;
}
章节2:空类型指针
章节3:指针变量的加减法
#include <stdio.h>
int main(){
int arr[10] = {0};
int* p1 = &(arr[0]);
int* p2 = &(arr[1]);
int d;
d = p2 - p1;
printf("d is:%d\n",d);
while (1);
return 0;
}
执行结果:d is 1
指针
指针变量传参在函数里面赋值
#include <stdio.h>
#include <stdlib.h>
void function(int* p){
printf("111addr of p:%p\n",p);
p = (int*)malloc(sizeof(int));
printf("222addr of p:%p\n",p);
}
int main(){
int i;
int *p1 = &i;
printf("addr of p1:%p\n",p1);
function(p1);
printf("addr of p1:%p\n",p1);
return 0;
}
这里void function(int* p)的p应该用int** p目前理解是这样的