指针是一个变量,其值是另一个变量的地址,即存储位置的直接地址。像任何变量或常量一样,必须在存储任何变量地址之前声明一个指针。指针变量声明的一般形式为:
句法:
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等的更多准备工作,请参阅“完整面试准备课程” 。