两个指针有什么区别?

时间:2017-06-15 18:18:11

标签: c++ pointers

int main(int argc, char *argv[])
{ 
    int *p=5,**P;
    printf("%d",&P);
}

* p和** P之间有什么区别?

3 个答案:

答案 0 :(得分:1)

* p是一个指å‘等于5

的int的指针

** P是指å‘A指针的指针;它是一个包å«åœ°å€çš„å˜é‡ã€‚

指针是包å«åœ°å€çš„å˜é‡ã€‚在您的PC中,æ¯ä¸ªå˜é‡éƒ½å­˜å‚¨åœ¨å…¶å†…存中的æŸä¸ªä½ç½®ã€‚放置å˜é‡çš„确切ä½ç½®ç§°ä¸ºå˜é‡çš„地å€ã€‚

使用指针,您å¯ä»¥çŸ¥é“å¦ä¸€ä¸ªå˜é‡çš„确切地å€ã€‚

示例

int c = 5; // this value of this int is stored at a certain address; 
int *p = &c; // the pointer p now contains the address where 5 

请记ä½ï¼Œ* p也是一个å˜é‡ï¼Œå› æ­¤ä¹Ÿå­˜å‚¨åœ¨å†…存中。

int **P = &p ; // a double pointer that contains the address of the pointer p

这将是一个新指针,指å‘存储p的地å€ï¼ˆä¸æ˜¯å˜é‡cï¼ï¼‰ - 指针;

答案 1 :(得分:0)

å•ä¸ªæ˜Ÿå·è¡¨ç¤ºæŒ‡é’ˆï¼Œè€ŒåŒæ˜Ÿå·è¡¨ç¤ºæŒ‡é’ˆæŒ‡é’ˆã€‚

答案 2 :(得分:0)

* p是int的地å€ï¼Œç­‰äºŽ5.所以在内存的æŸå¤„,有一个等于5çš„int,并且该指针指å‘该int的地å€ã€‚

** p是内存中指针的地å€ã€‚所以想想我们有一个指针指å‘上é¢çš„int,但现在最é‡è¦çš„是,我们有å¦ä¸€ä¸ªæŒ‡é’ˆæŒ‡å‘int的指针。å¦ä¸€ç§æ€è€ƒæ–¹å¼æ˜¯æˆ‘们有å¦ä¸€ä¸ªåœ°å€ç”¨äºŽint。