(1)指针就是地址
首先明确一个观点:指针就是地址。这是理解指针的起始一步。
直观感受下,变量的地址
int main()
{
	int foo;
	int *foo_p;
	foo = 5;
	foo_p = &foo;
	printf("   foo...%d\n", foo);
	printf("*foo_p...%d\n", *foo_p);
	printf("  &foo...%p\n", &foo);
	printf(" foo_p...%p\n", foo_p);
	printf("&foo_p...%p\n", &foo_p);
	return 0;
}几点说明:
- %p中的p是pointer(指针)的意思,专门用于打印指针变量中的内容。
- 有时看到用%x打印指针的,虽然结果一样,但含义完全不同。%p:用合适的方式(一般是十六进制)输出指针变量中存放的另一个变量的地址;%x:用十六进制的方式打印出变量的值。并且在我的环境中使用%x打印指针变量的话,会省略前面的0。
 
 指针变量的示意图 
 
 
 左上角是变量名,右上角是变量地址,中间是变量存储的内容。 
 
 
 可以这样来理解指针:指针是一种特殊的语言机制,它存放的是其它变量的地址,并且可以通过解引用操作符*,来获取该地址的内容。这也造成了一种指向的关系,如上图 foo_p->foo。 
 
 
 高阶指针 
 

 
                   
                   
                   
                   本文从基础知识出发,阐述了C语言中指针的本质——指针就是地址。通过举例说明如何使用%p打印指针变量的内容,强调了%d与%x在输出指针时的区别。文章旨在帮助初学者建立起对C指针的正确理解。
本文从基础知识出发,阐述了C语言中指针的本质——指针就是地址。通过举例说明如何使用%p打印指针变量的内容,强调了%d与%x在输出指针时的区别。文章旨在帮助初学者建立起对C指针的正确理解。
           最低0.47元/天 解锁文章
最低0.47元/天 解锁文章
                           
                       
       
           
                 
                 
                 
                 
                 
                
               
                 
                 
                 
                 
                
               
                 
                 扫一扫
扫一扫
                     
              
             
                   1万+
					1万+
					
 被折叠的  条评论
		 为什么被折叠?
被折叠的  条评论
		 为什么被折叠?
		 
		  到【灌水乐园】发言
到【灌水乐园】发言                                
		 
		 
    
   
    
   
             
            


 
            