基本程序,有趣的输出?说明
发布时间:2020-12-16 10:53:49 所属栏目:百科 来源:网络整理
导读:我正在学习指针,我正在从教程中运行这个程序,它提供了一些有趣的输出. #include stdio.hint main () { int var = 20; /*actual variable declaration */ int *ip; /*pointer variable declaration*/ ip = var; /*store addres of var in ip variable*/ print
我正在学习指针,我正在从教程中运行这个程序,它提供了一些有趣的输出.
#include <stdio.h> int main () { int var = 20; /*actual variable declaration */ int *ip; /*pointer variable declaration*/ ip = &var; /*store addres of var in ip variable*/ printf("Address of var variable: %xn",&var); /*address stored in ip variable*/ printf("Address of stored in ip variable: %xn",ip); /*access the value using pointer */ printf("value of *ip variable: %xn",*ip); return 0; } 根据我的理解,该网站说我的输出应该是两个匹配的内存位置,而值为20的“* * ip变量”部分.我对内存位置没有任何问题,它们都像人们想象的一样,最后一部分,它告诉我* ip变量的值是14? Address of var variable: 6d73b8cc Address of stored in ip variable: 6d73b8cc value of *ip variable: 14 这里发生了什么?用gcc编译,它给出一个关于格式%x的警告,期望一个无符号整数,但参数2的类型为…. MorePointers.c:10:9: warning: format ‘%x’ expects argument of type ‘unsigned int’,but argument 2 has type ‘int *’ [-Wformat=] printf("Address of var variable: %xn",&var); ^ MorePointers.c:13:9: warning: format ‘%x’ expects argument of type ‘unsigned int’,but argument 2 has type ‘int *’ [-Wformat=] printf("Address of stored in ip variable: %xn",ip); 请纠正我,如果我错了,但可能是由于格式,当期望无符号整数时可能导致数字不是20?作为无符号整数的值在0到65,535或0到4,294,967,295之间,而整数在-32,768到32,767或-2,147,483,648到2,647之间? 解决方法
发生了什么事情,你已经将整数值20打印为十六进制值,正确显示为14.我怀疑你期望20十进制. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- ruby-on-rails – 如何使用ember-rails gem为HandlebarsJS模
- ruby-on-rails – 使用Devise身份验证的Ruby on Rails功能测
- How to access sqlite database
- ruby-on-rails – 在Rails应用程序中添加其他字段(通过验证
- 如何将oracle数据库与asp.net Web应用程序集成?
- cocos2dx3.6 实现带光标的输入框
- Ajax中的XMLHttpRequest对象详解
- ruby-on-rails – ‘Require’方法不起作用 – 帮忙?
- Oracle Database的一个bug
- O_board-3-烧写外部spi-flash
推荐文章
站长推荐
热点阅读