我试图运行以下代码,但与这里发生的事情混淆:
int main()
{
/*
a = -1;
b = 0xffffffff;
*/
if(-1 == 0xffffffff )
printf("-1 is equal to maximum\n");
else
printf(" -1 is not equal to maximum\n");
if(0xff < -1)
printf(" Less than -1 \n");
if(0xff < 0xffffffff)
printf(" Less than maximum\n");
Run Code Online (Sandbox Code Playgroud)
我也尝试了注释部分,用"a"替换-1,用"b"替换0xffffffff但结果相同.
这是32位系统所以我采用整数大小4字节.
我的输出是:
-1 is equal to maximum
Less than maximum
Run Code Online (Sandbox Code Playgroud)
如果-1等于最大值,那么它应该执行最后两个if语句.但它没有发生.为什么?
我正在阅读以前编写的代码,并找到了StringCbPrintf()函数
我在msdn网站上发现了这样的声明:
HRESULT StringCbPrintf(
_Out_ LPTSTR pszDest,
_In_ size_t cbDest,
_In_ LPCTSTR pszFormat,
_In_ ...
);
Run Code Online (Sandbox Code Playgroud)
什么是_in_和_out_这里?
为什么我们已经拥有它需要它sprintf()?
y=x++;
Run Code Online (Sandbox Code Playgroud)
在没有优化而不是CPU级别或指令的情况下,它在编译器级别中断了多少个步骤?是否创建任何临时值以将x分配给y,或者直接发生?
我们%x在 C 中可以像这样将任何十进制值打印为十六进制值
printf("%x",a); // here a is having some integral value
Run Code Online (Sandbox Code Playgroud)
类似地,我们是否可以直接在 C++ 中打印它而无需任何额外的努力或无需添加额外的头文件,例如<iomanip>?
c99 standard 5.2.1.1 Trigraph sequences
Run Code Online (Sandbox Code Playgroud)
2 示例以下源代码行
printf("Eh???/n");
Run Code Online (Sandbox Code Playgroud)
变成(在替换三字母序列之后??/)
printf("Eh?\n");
Run Code Online (Sandbox Code Playgroud)
据说它将替换三合字母序列,但事实并非如此。
正在打印 "Eh???/n"
我错过了什么吗?
问题是制作10个整数的数组,这很好
int array[10];
Run Code Online (Sandbox Code Playgroud)
现在的问题是
如何使一个reference到array我上面声明?
我试过这个
int &ra = a;
Run Code Online (Sandbox Code Playgroud)
但它给我的错误...请提供有关此错误,以及如何使细节reference的array.
我想复制2d数组并将其分配给另一个.
在python我会做这样的事情
grid = [['a','b','c'],['d','e','f'],['g','h','i']]
grid_copy = grid
Run Code Online (Sandbox Code Playgroud)
我想在C中做同样的事情.
char grid[3][3] = {{'a','b','c'},{'d','e','f'},{'g','h','i'}};
Run Code Online (Sandbox Code Playgroud)
如何将此数组复制到copy_grid?
在代码中走进其他一些代码,我发现*
这是什么?
这是该代码的原型,并没有给出任何错误.只有警告随附gcc 4.5.2但在Windows上它不会发出警告并正确编译.由于公司的IP,我无法提供实际代码,但我想知道这是如何以及为什么这是正确的?
#include<stdio.h>
typedef enum e
{
a,
b,
c
}x,*y;
int main()
{
x t=4;
printf("x : %d\n",t);
y m=5;
printf("*y : %d\n",m);
return 0;
}
Run Code Online (Sandbox Code Playgroud) 这个问题正在寻找一个明确解释为什么这种行为是错误的标准引用.
以下代码包括<stdio.h>内部main,
int main()
{
#include <stdio.h>
printf("hello , world \n");
return 0;
}
Run Code Online (Sandbox Code Playgroud)
On gcc -Wall in.c -o in.outIt成功编译和打印hello , world.
但是clang in.c -o in.out它给了我这个错误:
/usr/include/stdio.h:353:12: error: implicit declaration of 'fprintf' requires
inclusion of the header <stdio.h>
extern int fprintf (FILE *__restrict __stream,
^
1 error generated.
Run Code Online (Sandbox Code Playgroud)
我怀疑这是什么行为?这种未定义的行为还是什么?
此外,我无法找到与其相关的文档.
编辑:问题是,我发现这个代码在某个地方类似于它,但我不能完全发布那个代码所以我发布了这种演示代码.我知道stdio.h在主要之外的放置.
我正在尝试其他的东西,但突然陷入这种无限循环.请建议一个答案,并解释下面的循环内容
#include<stdio.h>
int main()
{
int x=0;
int i;
int array[5];
for(i=0;i<=5;i++)
{
array[i]=x;
printf("#%d value set in index %d\n",x,i);
}
return 0;
}
Run Code Online (Sandbox Code Playgroud)
当我=在for循环条件中删除符号它工作正常.
但是,当我把它放到无限循环时,为什么?在数组中访问额外元素(超过其限制)是未定义的行为还是什么?任何帮助将不胜感激.提前致谢.
〜