C语言之整形与变量地址

举报
人才程序员 发表于 2023/09/29 17:07:43 2023/09/29
【摘要】 ​ 除了我们的int unsigned int我们还有其他的整形:short短整形,long int长整形,longlong int(vc6++不支持)short: 有符号的大小为-32768~32767,无符号的大小为0~‭65535。他的输出格式符为"%hd"short a = 1;//定义一个短整形的变量asizeof(a);//sizeof取变量的大小我们通过此判断短整型short大...

 除了我们的int unsigned int我们还有其他的整形:short短整形,long int长整形,longlong int(vc6++不支持)

short: 有符号的大小为-32768~32767,无符号的大小为0~‭65535。他的输出格式符为"%hd"

short a = 1;//定义一个短整形的变量a

sizeof(a);//sizeof取变量的大小

我们通过此判断短整型short大小为2字节。

long int:无符号的大小为0~‭4294967295‬,有符号的大小为-2147483648~2147483647.他的标准是输出格式为%ld

虽然他叫长整形,但是他的内存规定是不低于4字节就行(应编译器而异)

long int a = 12;
siezof(a);

longlong int :无符号的大小为0~2^64-1,有符号的大小为-2^63~2^63-1。 但是很可惜,"VC++6.0"不支持。他的输出格式为%lld

longlong int a = 12;
printf("%lld",sizeof(a));

用哪个取决于你数据的大小。

变量的地址:

计算机的每一块空间都有一个唯一的标志代表,本质就是一个数,从0开始,到一个很大的数,32位程序是2^32-1, 64位程序是2^64-1。这个数也叫地址,就像我们的家的地址一样。

怎么取变量的地址呢? 使用符号"&",SHIFT+上面的数字7.

怎么取变量的地址呢?

int a = 12;
&a//使用取地址符号(表达式没有分号,语句有分号,表达式都有一个结果)

直接使用“&”符号对变量取地址。每个变量都有自己唯一的地址,只要他没死,别人就永远占不了。

输出地址

预备知识:输出地址的输出格式为%p或者%#p。%p为16进制输出,%#p也是16进制输出,但是%#p是会以地址形式输出的。你不要思维定势了,总觉得地址只能用16进制的形式输出。他可以以10进制,2进制,8进制输出都可以。我们一般使用16进制输出。

int a = 12;
printf("%p",&a);//0014ff20
printf("%#p",&a);//0x0014ff20


【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。