![]() |
#2
rjsp2022-02-22 20:56
|

#include<stdio.h>
void print(int n)//
{
if(n>9)
{
print(n/10);
}
printf("%d、",n%10);
}
int main()
{
//函数 逐个打印
int num = 0;
printf("请随意输入一个数字,我将会逐个打印它\n"); //当我输入0到(2^31-1)时都可以正常打印,但输入2^32打印出-8 ;
//2^32+1打印出-7;2^32+2打印出-6依次类推 到2^32次方+8 打印出0
scanf("%d",&num); //2^32次方+9 打印出-9;2^32次方+10 打印出 -8
print(num); //我的推测是一个整形变量存储的数字大小上限,但是为什么会循环?求个大神解答下这种现象的原因
return 0;
}
//拓展____
//堆区 :动态开辟的内存 malloc calloc
//静态区:全局变量 static修饰的变量
void print(int n)//
{
if(n>9)
{
print(n/10);
}
printf("%d、",n%10);
}
int main()
{
//函数 逐个打印
int num = 0;
printf("请随意输入一个数字,我将会逐个打印它\n"); //当我输入0到(2^31-1)时都可以正常打印,但输入2^32打印出-8 ;
//2^32+1打印出-7;2^32+2打印出-6依次类推 到2^32次方+8 打印出0
scanf("%d",&num); //2^32次方+9 打印出-9;2^32次方+10 打印出 -8
print(num); //我的推测是一个整形变量存储的数字大小上限,但是为什么会循环?求个大神解答下这种现象的原因
return 0;
}
//拓展____
//堆区 :动态开辟的内存 malloc calloc
//静态区:全局变量 static修饰的变量