c++中指针的值是它所指向的地址吗,还有指针和首地址有什么关系,为什么要声明指针类型?
c++中指针的值是它所指向的地址吗,还有指针和首地址有什么关系,为什么要声明指针类型?c++中指针的值是它所指向的地址吗还是说指针的值是首地址,还有指针和首地址有什么关系...
c++中指针的值是它所指向的地址吗,还有指针和首地址有什么关系,为什么要声明指针类型?c++中指针的值是它所指向的地址吗还是说指针的值是首地址,还有指针和首地址有什么关系,为什么要声明指针类型?
展开
1个回答
展开全部
问:指针的值是它所指向的地址吗? 答,指针有自己的内存地址,当指针有指向时,它有 指向的地址,有指向的地址里存放的值。
例如1:
int a=10; int *p; 声明了 p 是指针,指针p有自己的内存地址,它可用来指向int型的变量,这时尚没有指向。
语句里 p=&a; 意思是 指针p 指向了 int型 变量 a 的地址。指针p的内存里存放了 a 的地址。&是求地址计算,&a 是表达式,算出简单变量 a 的地址。
语句里 printf("%d",*p); 这个 *p 是 指针p 指向的地址里存放的值,即 a 的当前值。
例如2:
int a[5]={1,2,3,4,5}; int *p; 声明了 p 是指针,指针p有自己的内存地址,它可用来指向int型的变量,这时尚没有指向。
语句里 p= &a[i]; 意思是 指针p 指向了 int型 一维数组 a 的 [i] 号元素 的地址。
语句里 p= &a[0]; 意思是 指针p 指向了 int型 一维数组 a 的 [0] 号元素 的地址。
语句里 p= a; 意思是 指针p 指向了 int型 一维数组 a 的 首 地址。
printf("%d",*p); 这个 *p 是 指针p 指向的地址里存放的值,若 前面有 p= &a[i];
则 输出 a[i] 的当前值。 前面有 p=&a[0]; 或 p= a; 则输出 a[0] 的当前值。
为何要声明指针类型? 答,只有当 有需要时 才 声明指针类型,不需要时可以不声明。c/c++ 涉及地址操作时,要用到指针,这时需要声明指针类型变量。
例如1:
int a=10; int *p; 声明了 p 是指针,指针p有自己的内存地址,它可用来指向int型的变量,这时尚没有指向。
语句里 p=&a; 意思是 指针p 指向了 int型 变量 a 的地址。指针p的内存里存放了 a 的地址。&是求地址计算,&a 是表达式,算出简单变量 a 的地址。
语句里 printf("%d",*p); 这个 *p 是 指针p 指向的地址里存放的值,即 a 的当前值。
例如2:
int a[5]={1,2,3,4,5}; int *p; 声明了 p 是指针,指针p有自己的内存地址,它可用来指向int型的变量,这时尚没有指向。
语句里 p= &a[i]; 意思是 指针p 指向了 int型 一维数组 a 的 [i] 号元素 的地址。
语句里 p= &a[0]; 意思是 指针p 指向了 int型 一维数组 a 的 [0] 号元素 的地址。
语句里 p= a; 意思是 指针p 指向了 int型 一维数组 a 的 首 地址。
printf("%d",*p); 这个 *p 是 指针p 指向的地址里存放的值,若 前面有 p= &a[i];
则 输出 a[i] 的当前值。 前面有 p=&a[0]; 或 p= a; 则输出 a[0] 的当前值。
为何要声明指针类型? 答,只有当 有需要时 才 声明指针类型,不需要时可以不声明。c/c++ 涉及地址操作时,要用到指针,这时需要声明指针类型变量。
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询