int main(int argc, char *argv[])
{
int *p=5,**P;
printf("%d",&P);
}
* p和** P之间有什么区别?
ç”案 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。