在C语言中,指针和函数指针是两个不同的概念

指针:指针是一个变量,其值为另一个变量的地址,即,内存位置的直接地址。我们可以通过这个指针来访问该地址存储的值

int a = 10;  
int *p;  
p = &a;   // p存储了变量a的地址  
printf("%d", *p);  // 这会打印出10,因为p指向了a的地址

在这个例子中,*是解引用运算符,用来获取指针指向的值。

函数指针:函数指针是指向函数的指针。换句话说,它是一个指针,其值为一个函数的地址。我们可以使用函数指针来调用函数,或者将函数作为参数传递给其他函数。

int add(int a, int b) {  
    return a + b;  
}  
  
int (*func_ptr)(int, int);  // 定义了一个函数指针  
func_ptr = add;  // 把add函数的地址赋值给func_ptr  
printf("%d", func_ptr(10, 20));  // 这会打印出30,因为func_ptr指向了add函数

在这个例子中,我们创建了一个指向add函数的函数指针func_ptr,然后使用该指针调用了add函数。

总的来说,指针和函数指针的主要区别在于它们指向的对象类型不同:指针指向的是变量(通常是其他变量、数组元素或对象的一部分),而函数指针指向的是函数。

你可能感兴趣的:(高级嵌入式c语言,c语言,开发语言)