标题:printf问题
只看楼主
anonymous_01
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2018-10-17
结帖率:0
已结贴  问题点数:10 回复次数:5 
printf问题
#include <iostream>
#include <string>
using namespace std;

int main()
{
    int int_1=10;
    int int_2;
    printf("%d\n",int_1); //输出 10
    printf("%d\n",int_2); //输出 4246560
    return 0;
}

int_2输出的是什么?
搜索更多相关主题的帖子: printf include int 输出 return 
2018-10-17 11:58
Tomorrw_I
Rank: 10Rank: 10Rank: 10
等 级:禁止访问
威 望:6
帖 子:406
专家分:1712
注 册:2018-10-16
得分:2 
int_2  输出的是  int_2 这个地址原本存放的数据

为了避免出现这种问题,定义变量的时候,一般都初始化一下

你这个代码,编译没有问题吗?

学C有用吗?
学C++有前途吗?
数据库有必要学吗?
……
别问,你还什么都不会,学就对了
……
2018-10-17 12:20
Pile_
Rank: 2
等 级:论坛游民
威 望:1
帖 子:21
专家分:92
注 册:2018-9-19
得分:2 
你定义了一个int类型的变量int_2, 但是没有进行初始化,所以输出的是没有意义的垃圾值。
2018-10-17 13:10
MeandC
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:8
帖 子:245
专家分:792
注 册:2018-7-14
得分:2 
int_2 你想让他输出什么呢。
没有初始化的话就是随机值了,因为并不会知道是什么值。你再编一个一样的程序,输出来就发现不一样。
八个开关也就是8bit算一个字节,这是在内存上分配的三十二个开关存的零和一这些当做十进制数字出来了,并没有意义,所以才要给变量赋值,不然输出来没啥用啊。

C果然是有点难啊!
2018-10-17 14:06
九转星河
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:长长久久
等 级:贵宾
威 望:52
帖 子:5023
专家分:14003
注 册:2016-10-22
得分:2 
通常从系统栈里面申请空间是没有初始化的……初始化需要一些时间,这和设计者对底层数据结构实现方案有关……
如果要深入了解一下可以看看汇编是怎么样的~

[code]/*~个性签名:bug是什么意思?bug是看上去没有可能的东西实际上是有可能做到的 就是这样~2018-08-08更~*/[/code]
2018-10-18 16:10
豆豆的滴
Rank: 9Rank: 9Rank: 9
来 自:湖南
等 级:贵宾
威 望:33
帖 子:368
专家分:1087
注 册:2018-5-7
得分:2 
随机值吧
2018-10-18 19:07



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-490459-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.045832 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved