C语言15 取地址符号&的使用

admin 2018年5月13日02:50:28评论815 views字数 950阅读3分10秒阅读模式
摘要

&符号是取地址符,任何变量都可以使用&来获取地址,但不能用在常量上说明 使用了 &符号后 将会生成 &符号后类型的指针(加一个*)

&符号是取地址符,任何变量都可以使用&来获取地址,但不能用在常量上

struct Point {     int x;     int y; }; char a; short b; int c; Point p;  printf("%p %p %p %p /n",&a,&b,&c,&p); printf("%x %x %x %x /n",&a,&b,&c,&p); printf("%x /n",&10);   16:       char a; 17:       short b; 18:       int c; 19:       Point p; 20: 21:       printf("%p %p %p %p /n",&a,&b,&c,&p); 0040D408   lea         eax,[ebp-14h] 0040D40B   push        eax 0040D40C   lea         ecx,[ebp-0Ch] 0040D40F   push        ecx 0040D410   lea         edx,[ebp-8] 0040D413   push        edx 0040D414   lea         eax,[ebp-4] 0040D417   push        eax 0040D418   push        offset string "%p %p %p %p /n" (00422e90) 0040D41D   call        printf (0040d6c0) 0040D422   add         esp,14h 22:       printf("%x %x %x %x /n",&a,&b,&c,&p); 0040D425   lea         ecx,[ebp-14h] 0040D428   push        ecx 0040D429   lea         edx,[ebp-0Ch] 0040D42C   push        edx 0040D42D   lea         eax,[ebp-8] 0040D430   push        eax 0040D431   lea         ecx,[ebp-4] 0040D434   push        ecx 0040D435   push        offset string "%x %x %x %x /n" (00422e80) 0040D43A   call        printf (0040d6c0) 0040D43F   add         esp,14h 

探测 & 变量的类型

char a; short* b; int** c;  int x = &a; int x = &b; int x = &c;  以上代码全都无法编译成功

说明 使用了 &符号后 将会生成 &符号后类型的指针(加一个*)

指针变量赋值

char x; char* p1; char** p2; char*** p3; char**** p4;  p1=&x; p2=&p1; p3=&p2; p4=&p3;  p1 = (char*)p4;

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2018年5月13日02:50:28
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   C语言15 取地址符号&的使用http://cn-sec.com/archives/51499.html

发表评论

匿名网友 填写信息