C++指针函数;函数指针; 函数参数为数组;函数参数为指针;区分

2021-04-07 01:25

阅读:505

标签:局部变量   nbsp   函数的参数   pac   空间   int   i++   end   new   

includeusing namespace std;

int* Array()
{  
 int *a;
 a=new int [10];
 for(int i=0;i10;i++)
{
 a[i]=i+1;
 cout" "; 
}
 coutendl;
 return a;
 sizeof(a);
}

int main()
{
 int *b;
 b=Array();
 for(int i=0;i10;i++)
  {
  cout" ";
  cout//sizeof(b);
  }
  return 0;
}

指针函数是一个返回值为指针的函数所以函数内部需要有一个指针作为返回值,调用时外部需要有一个指针去接收;

#includeusing namespace std;

int add(int x,int y)
{
  return x+y;
}
 
int main() 
{
  int (*fun)(int x,int y);//函数指针

  fun = add;
  cout "(*fun)(1,1) = " 1,1)endl;
  return 0;
}

函数指针是一个指向函数的指针;它本质是一个指针;

#include
using namespace std;
void
display(int arr[2]); int main() { int arr[2]={1,2};//被编译器释放了//加了=后由局部变量 变成了一个常量 从栈区变成了全局区 display(arr);return 0; } void display(int arr[2]) { for ( int i = 0; i 2; i++) {
arr[i]=3;
coutendl; } }

函数的参数是一个数组,调用只需要数组名即可;调用的参数实质是数组的首地址,由于是地址传递,不开辟新的内存空间,修改是直接在实参上修改;

#includeusing namespace std;

void display(int *p);
int main() { int arr[]={1,2};//被编译器释放了//加了=后由局部变量 变成了一个常量 从栈区变成了全局区 //int *p=arr; display(arr); return 0; } void display(int *p) { for ( int i = 0; i 2; i++) {
*p=3; cout
endl; p++; } }

函数的参数是指针,存放的是地址,形参不额外开辟内存空间,修改是直接在实参上修改;

 

C++指针函数;函数指针; 函数参数为数组;函数参数为指针;区分

标签:局部变量   nbsp   函数的参数   pac   空间   int   i++   end   new   

原文地址:https://www.cnblogs.com/hyby/p/13394573.html

上一篇:Java反射机制

下一篇:冒泡排序


评论


亲,登录后才可以留言!