首页 > 代码库 > void f(int(&p)[3]){} 和void f(int(*p)[3]){}的区别
void f(int(&p)[3]){} 和void f(int(*p)[3]){}的区别
#include<iostream>
using namespace std;
void f(int(&p)[3]){
cout<<p[0]<<endl;
cout<<p[2]<<endl;
}
int main(){
int a1[3]={1,2,3};
cout<<a1<<endl;
cout<<&a1<<endl;
f(a1);
}
using namespace std;
void f(int(&p)[3]){
cout<<p[0]<<endl;
cout<<p[2]<<endl;
}
int main(){
int a1[3]={1,2,3};
cout<<a1<<endl;
cout<<&a1<<endl;
f(a1);
}
编译后输出:
0xbfbb8eb4
0xbfbb8eb4
1
3
#include<iostream>
using namespace std;
void f(int(*p)[3]){
cout<<p[0]<<endl;
cout<<p[2]<<endl;
}
int main(){
int a1[3]={1,2,3};
cout<<a1<<endl;
cout<<&a1<<endl;
f(&a1);
}
编译后输出:
0xbff21e84
0xbff21e84
0xbff21e84
0xbff21e9c
由此比较可以看出,
void f(int(*p)[3]){}是个函数指针数组,指针数组属于二级指针
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。