标签:
因为保研机试,所以把C语言看了一下,本来自我感觉良好,真的发现几个很基础对问题都不会。
1.
typedef struct node { int x, y; } Node, *pNode;
这里给struct node定义了别名 Node, 之前我都以为 pNode 是 定义了一个 Node 类型对指针。。。现在才知道自己傻。
实际上应该是给 struct node * 定义了一个别名,叫 pNode。
2.
关于字符数组:
char s[] = {‘a‘, ‘b‘, ‘c‘, ‘d‘};
这里定义了一个字符数组 s, 并且进行了初始化。但是 strlen (s) 的指是 5(gcc和VS运行结果可能不同!), sizeof (s) 的值是 5;
但是如果这样定义:
char s[] = "abcde";
这里strlen (s) 的值应该是也是5, sizeof(s) 的值是6;
sizeof的结果不同是因为前面对定义, 编译器并不要求在最后加一个 ‘\0‘, 所以组对它应用strlen的时候,不同编译器可能结果不同。
而对于后者对定义方式,编译器是要求组结尾加一个 ‘\0‘。
标签:
原文地址:http://www.cnblogs.com/Stomach-ache/p/4805037.html