几个问题,大家解解看
以前做过的几个问题,觉得挺有意思,再贴出来,共赏。////问题:为什么打印不出数组元素?
#include<stdio.h>
#include <stdlib.h>
int array[] = {23,34,12,17,204,99,16};
#define COUNTS (sizeof(array) / sizeof(array[0]))
int main()
{
int d;
for(d=-1;d <= (COUNTS-2);d++)
printf("%d\n",array[d+1]);
system("PAUSE");
return 0;
}
//问题2:下面的程序是合法的吗?如果是,输出是什么?为什么?
#include <stdio.h>
#include <stdlib.h>
int main()
{
int i=43;
printf("%d\n",printf("%d",printf("%d",i)));
system("PAUSE");
return 0;
}
//问题3:下面的程序是什么作用?原理是什么样的?
#include <stdio.h>
#include <stdlib.h>
int noName(unsigned int x)
{
int count=0;
while(x)
{
count++;
x = x&(x-1);
}
return count;
}
int main()
{
printf("%d\n", noName(167));
system("PAUSE");
return 0;
}
//问题:下面程序的输出是什么?为什么?
#include <stdio.h>
#include <stdlib.h>
int main()
{
float a = 12.5;
printf("%d\n", a);
printf("%d\n", *(int *)&a);
system("PAUSE");
return 0;
}
//问题:下面的程序输出结果是什么?为什么?
#include <stdio.h>
#include <stdlib.h>
#define SIZE 10
void size(int arr[SIZE])
{
printf("size of array is:%d\n",sizeof(arr));
}
int main()
{
int arr[SIZE];
size(arr);
system("PAUSE");
return 0;
}