字符串和结构体的考试总结

这篇博客探讨了C语言中的字符串操作,包括字符数组的赋值、字符串函数的使用,以及结构体和联合体在内存分配上的细节。提到了scanf函数在读取字符串时遇到空格会停止,以及如何通过strlen函数比较字符串长度。此外,还讨论了结构体成员内存对齐和总大小计算,以及指针和结构体成员的交互。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.

都字符进行赋值  char *p; p="ABCDE";这个是正确的

 char s[5]={"ABCDE"};这是错误的

2.

 

char s[51];scanf("%s",s);当我们输入一个字符串时,当scanf抓取时遇到空格就会结束。

3.

字符串函数声明时的头文件为 string.h

4.字符函数声明时头文件为 ctype.h

5.

 

判断两个字符串的长度时应使用if(strlen(s1)>strlen(s2));

6.struct stu
{
    char name[20];
    long int n;
    int score[4];
}a;

这里long int 为8字节,我们求a所占的内存字节

从结构体中看char时一个字节,long int时8个字节,int是4个字节。我们取最大的8个字节来给结构体变量中的成员分配空间,char name【20】分配了20个空间,所以我们需要三个8字节,long int需要一个,int score【4】也需要2个,总共需要分配6个,一共是6*8=48。

7.

 p=aa;

printf(“%d\n”,++(p->x));

我们可以看到p指向的是aa,然后p->x就是数组aa中的50,y就是&dt[0],所以++(p->x)的结构为51.

8.

 h[0].p=&h[1];这个赋值就相当于h[1].x=3,

h[1].p=h相当于h=2;所以输出的结果为3、2。

9.

 这个我们优先计算出union的所占用字节为8,然后在结构体算总的字节数,这里答案中没有正确答案,这里w在内存所占的字节为40.。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值