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.。