作者spong (请输入ID)
看板C_and_CPP
标题[问题] 双重指标
时间Mon Jun 15 01:40:38 2020
#include<iostream>
using namespace std;
int main(void)
{
int x = 5;
int *ptr=&x;
int **temp =&ptr;
cout << "&ptr="<<ptr<< endl;
cout << "*ptr=" << *ptr<< endl;
cout << "&temp=" <<temp <<endl;
cout << "**temp="<<**temp <<endl;
return 0;
}
既然双重指标,是指标的指标,为什麽不能宣告int *temp 去指向 int *ptr呢?
一定要用**temp?
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 49.213.185.143 (台湾)
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/C_and_CPP/M.1592156440.A.03A.html
1F:→ loveme00835: 型别才是最重要的, 不要用值去学习 06/15 01:51
3F:→ poolongkong: 其实这个写法的概念就跟value vs. pointer是一样的 06/15 02:23
4F:→ poolongkong: 如果想要保留变数在函式中的任何操作,可以透过传递 06/15 02:25
5F:→ poolongkong: 变数位址的方式 06/15 02:25
6F:→ poolongkong: 同理,如果想要保留一维指标在函式中的操作,可以透 06/15 02:25
7F:→ poolongkong: 过传递指标位址的方式 06/15 02:27
8F:→ sarafciel: 你的code在语意上错了 ptr跟&ptr是不一样的 06/15 10:55
9F:推 Richun: 你可以试着用指标实作一个二维阵列 试试只有int*会怎样 06/15 14:40
10F:→ Richun: int**我会解释成(int*)*,是存一个(int*)变数的位址的型态 06/15 14:41
11F:→ loveme00835: 把指标值印出来当参考的这种学习方法很大机会是概念 06/15 15:57
12F:→ loveme00835: 理解有误, 处理复杂一点的型别就会出问题 06/15 15:57
13F:→ chuegou: 指向“型别为指标的变数”的指标 06/15 21:38
14F:→ chuegou: 指向“型别为int的变数”的指标 06/15 21:38
15F:→ chuegou: 被指的东西不一样 06/15 21:38
16F:推 dces4212: 对名字误解也会让你难理解它的用途,他不叫双重指标, 06/17 00:14
17F:→ dces4212: 而是指标的指标,顾名思义,他是指向指标的指标,主要 06/17 00:14
18F:→ dces4212: 用来操作指标的内容(记忆体位址),而非其对应资料型态 06/17 00:14
19F:→ dces4212: 所指向的资料 06/17 00:14
20F:→ dces4212: *所指的资料 06/17 00:15