纠错

1..char array1[] = “chain”;则数组array1所占的空间为:6个字节,因为其结尾包括‘\0’
char array2[] = {‘c’,’h’,’i’,’n’,’a’};则数组array2所占的空间为:5个字节

2..某主机ip地址为202.117.131.12/20,其子网掩码为:255.255.240.0
前20位代表网络号,后12位代表主机号;前20位全位1,后12位全为0则为子网掩码
3.
struct S
{
int x:3;
int y:4;
int z:5;
double a;
}aaa;
int main()
{
printf(“%d\n”,sizeof(aaa));
printf(“%d\n”,sizeof(struct S));
return 0;
}
本机时32位,测试输出为:12。
位域:有些信息在存储时,并不需要占用一个完整的字节, 而只需占几个或一个二进制位。
例如在存放一个开关量时,只有0和1 两种状态, 用一位二进位即可。为了节省存储空间,并使处理简便,
C语言又提供了一种数据结构,称为“位域”或“位段”。
所谓“位域”是把一个字节中的二进位划分为几 个不同的区域,并说明每个区域的位数。
每个域有一个域名,允许在程序中按域名进行操作。
这样就可以把几个不同的对象用一个字节的二进制位域来表示。
位段成员必须声明为int、unsigned int或signed int类型(short char long)。
说明aaa为S变量,共占12个字节。其中位域a占3位,位域b占4位,位域c占5位。
a+b+c占4个字节(系统默认分配单位),double型占8个字节
对于位域的定义尚有以下几点说明:1. 如果一个字节所剩空间不够存放另一位域时,应从下一单元起存放该位域。
2.位域的长度不能大于数据类型本身的长度,比如int类型就能超过32位二进位。
3. 位域可以无位域名,这时它只用来作填充或调整位置。无名的位域是不能使用的

4,中间件:一种独立的系统软件或服务程序,分布式应用软件借助这种软件在不同的技术之间共享资源。中间件位于客户机/服务器的操作系统之上,管理计算机资源和网络通讯,是连接两个独立应用程序或独立系统的软件。相连接的系统,即使他们具有不同的接口,但通过中间件仍能交换信息,中间件并不能提高内核效率。

5.vector容器
vectorarray;
array.erase(array.begin())//执行这句,删除头元素,array.begin()自动移动到下一元素
6.char型数据类型的赋值
char a = ‘0’; //常规赋值
char b = 97; //传输的97位ASIIC值
printf(“%c\n”,a); //0
printf(“%c\n”,b); //a
7.fork进程
int main()
{
int i;
for(i = 0;i < 2;i++)
{
fork();
printf(“a”);
}
return 0;
}
打印出8个a,

这里写图片描述

8.设x、y、t均为int型变量,则执行语句:t=3; x=y=2; t=x++||++y; 后,变量t和y的值分别为__。 t=1,y=2;
答:或运算为真,则为1,所以赋值给t = 1;
与,或运算当前面条件满足判断,不必向下执行,x++非0,所以y++不执行

9。数组地址 数组首元素地址
//注意数组首元素地址加1,指向第二个元素的地址,
//数组的地址加1,指向数组最后的元素之后的地址,偏移一个strlen(str)长度
int main(void)
{
int a[5] = {1, 2, 3, 4, 5};
int ptr = (int )(&a + 1);
printf(“%d,%d”, (a + 1), (ptr - 1)); //2,5
return 0;
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值