指针变量的初始化
# include <stdio.h>
int main ( int argc, const char * argv[ ] )
{
int num= 520 ;
printf ( "num的地址为:%#X\n" , & num) ;
int * p= & num;
printf ( "p=%#X\n" , p) ;
int * q= p;
printf ( "q=%#x\n" , q) ;
int * k= NULL ;
printf ( "k=%p\n" , k) ;
int * y;
printf ( "y=%p\n" , y) ;
}
验证&与*互为逆运算
# include <stdio.h>
int main ( int argc, const char * argv[ ] )
{
int num = 520 ;
int * p= & num;
printf ( "*&num=%d\n" , * & num) ;
printf ( "&*p=%p\n" , & * p) ;
}
大小端
# include <stdio.h>
int main ( int argc, const char * argv[ ] )
{
int num = 0x12345678 ;
char value = 'A' ;
int * p = & num;
char * q = & value;
printf ( "*p = %d,*q = %c\n" , * p, * q) ;
printf ( "sizeof(p) = %ld,sizeof(q) = %ld\n" , sizeof ( p) , sizeof ( q) ) ;
q = ( char * ) p;
printf ( "p = %p,q = %p,&num = %p\n" , p, q, & num) ;
printf ( "*p = %#x,*q = %#x\n" , * p, * q) ;
if ( * q == 0x78 )
printf ( "此主机为小端存储\n" ) ;
else if ( * q == 0x12 )
printf ( "此主机为大端存储\n" ) ;
p = p+ 1 ;
q = q+ 1 ;
printf ( "p = %p,q = %p,&num = %p\n" , p, q, & num) ;
printf ( "*p = %#x,*q = %#x\n" , * p, * q) ;
return 0 ;
}