C++数组指针v.s.指针数组 函数指针v.s.指针函数

来源:互联网 发布:无限制的网络访问 编辑:程序博客网 时间:2024/06/13 09:22

数组指针:指向数组的指针;指针数组:存放指针的数组( ()的优先级高于[], []的优先级高于*)

#include<iostream>using namespace std;#include<stdlib.h>void main(){int ar[10]={1,2,3,4,5,6,7,8,9,10};cout<<ar<<endl;   //数组ar变量空间存的值(数组首元素的地址)cout<<&ar[0]<<endl;   //数组ar首元素的地址cout<<&ar<<endl;   //数组ar的地址int *p=ar;   //把数组ar变量空间存的地址值赋给指针pint *p1=&ar[0];   //把数组ar首元素的地址赋给p1int (*p2)[10]=&ar;   //把数组ar的地址赋给数组指针p2//被赋值的指针大小必须和数组大小一样int br[3][4]={0};int (*p3)[4]=br;   //br表示二维数组br的首元素一维数组br[0]的地址system("PAUSE");}

#include<iostream>using namespace std;#include<stdlib.h>void main(){int ar[3]={1,2,3};int (*p)[3]=&ar;   //(指向数组的)指针int a=1,b=2,c=3;int *br[3]={&a,&b,&c};   //(存放指针的)数组// ()的优先级高于[], []的优先级高于*system("PAUSE");}



函数指针:指向函数的指针;指针函数:返回指针/地址的函数

#include<iostream>using namespace std;#include<stdlib.h>int fun(int a,int b){return a>b?a:b;}int (*pfun)(int,int);   //(指向函数的)指针int* fun1(int a,int b){static int x=a+b;return &x;   //(返回指针/地址的)函数}void main(){pfun=fun;   //pfun=&fun;void *v;   //void类型的指针变量大小固定可以定义 int m=10;int n=20;int result=(*pfun)(m,n);   //通过指针引用函数cout<<result<<endl;int* p=fun1(m,n);   //把int型函数指针返回值赋给int型指针变量pcout<<p<<endl;system("PAUSE");}

主函数main的参数来源

argc(argument count)参数个数,argv(argument vector)参数向量

#include<iostream>using namespace std;#include<stdlib.h>void main(int argc,char *argv[])   //存放指针的数组//该数组的每个空间存储一个字符指针(字符串的首地址),指针指向字符串{cout<<"argc"<<endl;for(int i=0;i<argc;++i){cout<<argv[i]<<endl;}system("PAUSE");}







阅读全文
0 0
原创粉丝点击