什么是%*d
?我知道那%d
是用的integers
,所以我认为%*d
也必须只涉及整数?它的目的是什么?它有什么作用?
int a=10,b=20;
printf("\n%d%d",a,b);
printf("\n%*d%*d",a,b);
Run Code Online (Sandbox Code Playgroud)
结果是
10 20
1775 1775
Run Code Online (Sandbox Code Playgroud) std::vector<DWORD64> v;
for(size_t i = init; i < pageSize; ++i)
v.push_back(i);
DWORD64 last = *(v.rbegin());
DWORD64 first = *(v.begin());
printf("%d %d \n", last, first);
printf("%d %d \n", first, last);
Run Code Online (Sandbox Code Playgroud)
输出:
4095 0
0 0
Run Code Online (Sandbox Code Playgroud)
我不明白为什么这个printf表现得那样?init或pageSize都不是0.我理解%d对无符号long long无效,但令我困扰的是当参数的顺序改变时printf的行为会发生变化.
我正在尝试一个程序来理解结构变量的行为,
示例代码:
struct temp
{
int a;
int b;
}obj;
int main()
{
obj.a = 10;
obj.b = 7;
/* to see whether obj and &obj both are same
* I was verifying whether structure variables behave as arrays
*/
printf("%d -- %p",obj,&obj);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
我期待输出为10和obj的地址但令我惊讶的是,实际输出为10和00000007
这对我来说很烦人!!!
谁能帮助我理解为什么printf正在接受第二个成员并打印它的价值.
当我开始学习没有C的C++时,我从不打扰寻找printf.现在我想在某些项目中使用格式化输出.所以我正在寻找一些可以解释使用printf和IO流之间差异的参考资料.
我怀疑的是:
float f = 1.5;
printf("%d", f);
Run Code Online (Sandbox Code Playgroud)
为什么打印为零?FWIK它应该重新解释float为int是真的吗?
看到我有一个复杂的代码,但我坚持一些在哪里,所以我只是给你一部分..
我有一个功能
function(int a,uint64_t b,int c);
Run Code Online (Sandbox Code Playgroud)
当我打电话给功能
uint64_t b;
int c;
printf("enter b");
scanf("%d",&b); // i m giving 1
printf("enter c");
scanf("%d",&c); // i m giving 2
function(0xcd32ab00 ,b ,c);
Run Code Online (Sandbox Code Playgroud)
在该函数定义中,我将比较值b与另一个参数相比较
/* magicNum is type uint64_t type & it has value 1 */
if(magicNum == b)
{
// do something
}
Run Code Online (Sandbox Code Playgroud)
但是"做某事"并没有发生; 当我打印magicNum&b都有值1所以无法理解为什么会发生这种情况.
我写的时候
if((uint64_t)magicNum == (uint64_t)b)
{
// do something
}
Run Code Online (Sandbox Code Playgroud)
这很完美.
我知道我做了一个愚蠢的错误,但我没有得到... PLZ帮助我...我在32位Linux系统上工作
printf函数int到%f,浮动到%d试图实验
#include<stdio.h>
int main(){
int i=10;
float x=43.2892f;
printf("i=%f x=%d \n",i,x);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
OUTPUT:
i=43.289200 x=10
Run Code Online (Sandbox Code Playgroud)
需要帮助来理解为什么这些变量是互换的?