c语言中的(int)x%3是什么意思?
发布网友
发布时间:2023-05-04 22:31
我来回答
共4个回答
热心网友
时间:2023-11-27 20:19
先计算x%3,也就是x除以3后的余数..
(int)是强制类型转换的意思..也就是说把这个整个表达式得出的值强制转换到int类型
热心网友
时间:2023-11-27 20:19
一楼的优先级写错了
反汇编这段代码可以知道
他是先执行(int)x;
再取余数;
比如说开始的时候 x = 10.3
那么他要先计算(int)10.3 = 10
然后计算10%3 也就是 10 除以 3 的余数。
---------------------反汇编结果-----------------------
double x=3230000;
004113EE fld qword ptr [__real@4148a49800000000 (415840h)]
004113F4 fstp qword ptr [x]
int c;
c=(int)x % 3;
004113F7 fld qword ptr [x]
004113FA call @ILT+220(__ftol2_sse) (4110E1h)
004113FF cdq
00411400 mov ecx,3
00411405 idiv eax,ecx
00411407 mov dword ptr [c],edx
热心网友
时间:2023-11-05 19:21
先计算x%3,也就是x除以3后的余数..
(int)是强制类型转换的意思..也就是说把这个整个表达式得出的值强制转换到int类型
热心网友
时间:2023-11-05 19:22
一楼的优先级写错了
反汇编这段代码可以知道
他是先执行(int)x;
再取余数;
比如说开始的时候 x = 10.3
那么他要先计算(int)10.3 = 10
然后计算10%3 也就是 10 除以 3 的余数。
---------------------反汇编结果-----------------------
double x=3230000;
004113EE fld qword ptr [__real@4148a49800000000 (415840h)]
004113F4 fstp qword ptr [x]
int c;
c=(int)x % 3;
004113F7 fld qword ptr [x]
004113FA call @ILT+220(__ftol2_sse) (4110E1h)
004113FF cdq
00411400 mov ecx,3
00411405 idiv eax,ecx
00411407 mov dword ptr [c],edx
热心网友
时间:2023-11-05 19:22
严重怀疑是int
x[2];,你输入错了或者你认为都一样。
int
x[2];是定义一个整形数组x,有两个元素x[0]、x[1],这意思就对了。
还有一种可能,你没错。那就是已经定义过一个函数int
x(int),那么int
x(2)就是携带2这个参数调用该函数。但应该是这样:int
x(2);,后边要有分号。
热心网友
时间:2023-11-05 19:23
x%3就是x/3取余数,(int)就是将x%3转换为int型
热心网友
时间:2023-11-27 20:20
严重怀疑是int
x[2];,你输入错了或者你认为都一样。
int
x[2];是定义一个整形数组x,有两个元素x[0]、x[1],这意思就对了。
还有一种可能,你没错。那就是已经定义过一个函数int
x(int),那么int
x(2)就是携带2这个参数调用该函数。但应该是这样:int
x(2);,后边要有分号。
热心网友
时间:2023-11-05 19:21
先计算x%3,也就是x除以3后的余数..
(int)是强制类型转换的意思..也就是说把这个整个表达式得出的值强制转换到int类型
热心网友
时间:2023-11-27 20:20
x%3就是x/3取余数,(int)就是将x%3转换为int型
热心网友
时间:2023-11-05 19:22
一楼的优先级写错了
反汇编这段代码可以知道
他是先执行(int)x;
再取余数;
比如说开始的时候 x = 10.3
那么他要先计算(int)10.3 = 10
然后计算10%3 也就是 10 除以 3 的余数。
---------------------反汇编结果-----------------------
double x=3230000;
004113EE fld qword ptr [__real@4148a49800000000 (415840h)]
004113F4 fstp qword ptr [x]
int c;
c=(int)x % 3;
004113F7 fld qword ptr [x]
004113FA call @ILT+220(__ftol2_sse) (4110E1h)
004113FF cdq
00411400 mov ecx,3
00411405 idiv eax,ecx
00411407 mov dword ptr [c],edx
热心网友
时间:2023-11-05 19:22
严重怀疑是int
x[2];,你输入错了或者你认为都一样。
int
x[2];是定义一个整形数组x,有两个元素x[0]、x[1],这意思就对了。
还有一种可能,你没错。那就是已经定义过一个函数int
x(int),那么int
x(2)就是携带2这个参数调用该函数。但应该是这样:int
x(2);,后边要有分号。
热心网友
时间:2023-11-05 19:23
x%3就是x/3取余数,(int)就是将x%3转换为int型