69,336
社区成员
发帖
与我相关
我的任务
分享
int arr[]={6,7,8,9,10};
int *ptr=arr;
*(ptr++)+=123;
printf("%d,%d",*ptr,*(++ptr));
union U
{
struct
{
unsigned int a:1;
unsigned int b:2;
unsigned int c:3;
} I;
char chr;
};
void main()
{
U u;
u.chr = 100;
printf("%d,%d,%d,",u.I.a,u.I.b,u.I.c);
}
#include <stdio.h>
int main()
{
int arr[]={6,7,8,9,10};
int *ptr=arr;
*(ptr++)+=123;
printf("%d,%d\n",*ptr,*(++ptr));
/*
printf()从右往左运算,先执行*(++ptr)再执行*ptr,所以输入8,8
如果将上面改成 printf("%d,%d\n",*(++ptr),*ptr);
输出的结果为8,7
*/
for (int i = 0 ; i < 5 ; i++)
{
printf("%d\t",arr[i]);
}
return 0;
}
----------------------------
8,8
129 7 8 9 10
#include <stdio.h>
union U
{
struct
{
unsigned int a:
1;
unsigned int b:
2;
unsigned int c:
3;
unsigned int d:
4;
} I;
char chr;
};
int main()
{
U u;
u.chr = 100;
printf("%d,%d,%d",u.I.a,u.I.b,u.I.c);
return 0;
}
union U
{
struct
{
unsigned int a:1;//位域 也就是说用1 bit来表示a
unsigned int b:2;
unsigned int c:3;
} I;
char chr;
};
union U
{
struct
{
unsigned int a:1;//位域 也就是说用1 bit来表示a
unsigned int b:2;
unsigned int c:3;
} I;
char chr;
};
union U
{
struct
{
unsigned int a:1;//位域 也就是说用1 bit来表示a
unsigned int b:2;
unsigned int c:3;
} I;
char chr;
};
unsigned int a:1;
union U
{
struct
{
unsigned int a:1;//位域 也就是说用1 bit来表示a
unsigned int b:2;
unsigned int c:3;
} I;
char chr;
};