int (*ptr) 和int *p 本身是没有什么区别的,都是定义一个指针
只不过名字叫的不同而已,a表示数组的首地址,确切的说法应该是数组的第1个元素的地址,即在这里是a[0]的地址
下面几个是等价的写法
int (*ptr)=a; //ptr指向第一个元素1
int *q=a; //q指向第一个元素1
int *p=&a[0]; //p指向第一个元素1
给个程序你验证下把
#include
using namespace std;
void main()
{
int a[] = {1,2,3,4,5,6};
int (*ptr)=a; //ptr指向第一个元素1
int *q=a; //q指向第一个元素1
int *p=&a[0]; //p指向第一个元素1
//输出验证
cout<<(*ptr)<
区别就是第一个是对的 第二个是错的:a[0]是元素 p是指针
int (*ptr) = a; <=>int *p = &a[0]
int *p = a[0]编译是不能通过的
int (*ptr) = a 就是用pstr指向数组a,从而可以用pstr对数组a直接操作(如修改内容)。
一个是对的,一个是错的<这个就是区别>
int *p = a[0], 全面为int指针类型变量,后面为int类
型变量
这样就是对的了: int *p = &a[0],
int (*ptr) 和int *p 没有区别;
a表示数组a的首地址,a[0]表示第0个变量的值