c语言取地址是首字母吗,C语言15 取地址符号&的使用 | CN-SEC 中文网

本文探讨了C语言中&符号的使用,它用于获取变量的内存地址,但不能用于常量。通过示例展示了如何为不同类型的变量取地址,并打印其十六进制表示。同时,解释了指针变量的层级赋值以及编译错误的情况,强调了使用&后会产生相应类型指针的概念。
摘要由CSDN通过智能技术生成

摘要

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

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

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;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值