首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

为什么啊该怎么解决

2012-04-04 
为什么啊??、#include stdio.h#include string.hint main(){int a[100]{0}memset(a,1,sizeof(a))pri

为什么啊??、
#include <stdio.h>
#include <string.h>
int main()
{
int a[100]={0};
memset(a,1,sizeof(a));
printf("%d\n",a[0]);
return 0;
}
//a[0]=16843009

[解决办法]
你把a的每一个字节都赋值为01,a[0]=0x01010101 = 16843009没问题啊
[解决办法]
结果无误,你想要这个结果吧

#include <stdio.h>
#include <string.h>
int main()
{
int a[100]={0};
memset(a,0xff,sizeof(a));
printf("%08x\n",a[0]);
return 0;
}
结果为 0xffffffff
[解决办法]
void *memset(void *s, int ch, size_t n); 
将s所指向的某一块内存中的每个字节的内容全部设置为ch指定的ASCII值, 块的大小由第三个参数指定,这个函数通常为新申请的内存做初始化工作

这样,你的数组的每个元素初始化值对应的二进制为1 00000001 00000001 00000001 
对应的int 就是16843009
[解决办法]
这是你要的效果

C/C++ code
#include <stdio.h>#include <string.h>int main(int argc, char **argv) {    char a[100]={0};    memset(a,1,sizeof(a));    printf("%d\n",a[0]);    return 0;}
[解决办法]
探讨

为什么a[0]不等于1?

热点排行