📜  int * p()和int(* p)()之间的区别?

📅  最后修改于: 2021-05-25 19:59:14             🧑  作者: Mango

指针是一个变量,其值是另一个变量的地址,即存储位置的直接地址。像任何变量或常量一样,必须在存储任何变量地址之前声明一个指针。指针变量声明的一般形式为:

句法:

type *var_name;

在这里, type是指针的基本类型。它必须是有效的C / C++数据类型,并且var-name是指针变量的名称。星号*用于将变量指定为指针。以下是其各自数据类型的有效指针声明:

int *ip;
float *fp;
double *dp;
char *cp;

在本文中,重点是区分int * p()int(* p)()

int * p() :这里的“ p”是一个没有参数且返回整数指针的函数。

int* p()
returntype function_name (arguments)

下面是说明int * p()用法的程序:

C++
// C++ program to demonstrate the use
// of int* p()
#include 
using namespace std;
  
// Function that returns integer pointer
// and no arguments
int* p()
{
    int a = 6, b = 3;
    int c = a + b;
    int* t = &c;
    return t;
}
  
// Driver Code
int main()
{
    // Declare pointer a
    int* a = p();
    cout << *a;
}


C++
// C++ program to demonstrate the use
// of int* (*p)()
#include 
using namespace std;
  
// Function with no arguments
// and return integer
int gfg()
{
    int a = 5, b = 9;
    return a + b;
}
  
// Driver Code
int main()
{
    // Declaring Function Pointer
    int (*p)();
  
    // Storing the address of
    // function gfg in function
    // pointer
    p = gfg;
  
    // Invoking function using
    // function pointer
    cout << p() << endl;
}


输出:
9

int(* p)():这里的“ p”是一个函数指针,可以存储不带参数且返回整数的函数的地址。 * p是函数,’ p ‘是指针。

下面是说明int(* p)()用法的程序:

C++

// C++ program to demonstrate the use
// of int* (*p)()
#include 
using namespace std;
  
// Function with no arguments
// and return integer
int gfg()
{
    int a = 5, b = 9;
    return a + b;
}
  
// Driver Code
int main()
{
    // Declaring Function Pointer
    int (*p)();
  
    // Storing the address of
    // function gfg in function
    // pointer
    p = gfg;
  
    // Invoking function using
    // function pointer
    cout << p() << endl;
}
输出:
14
要从最佳影片策划和实践问题去学习,检查了C++基础课程为基础,以先进的C++和C++ STL课程基础加上STL。要完成从学习语言到DS Algo等的更多准备工作,请参阅“完整面试准备课程”