C语言基础
因为保研机试,所以把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'。
3.
转义字符
转义字符 | 意义 | ASCII码值(十进制) |
\a | 响铃(BEL) | 007 |
\b | 退格(BS) ,将当前位置移到前一列 | 008 |
\f | 换页(FF),将当前位置移到下页开头 | 012 |
\n | 换行(LF) ,将当前位置移到下一行开头 | 010 |
\r | 回车(CR) ,将当前位置移到本行开头 | 013 |
\t | 水平制表(HT) (跳到下一个TAB位置) | 009 |
\v | 垂直制表(VT) | 011 |
\\ | 代表一个反斜线字符''\' | 092 |
| | |
\' | 代表一个单引号(撇号)字符 | 039 |
\" | 代表一个双引号字符 | 034 |
\0 | 空字符(NULL) | 000 |
\ddd | 1到3位八进制数所代表的任意字符 | 三位八进制 |
\xhh | 1到2位十六进制所代表的任意字符 | 二位十六进制 |
从表中可以看出,在C语言中有三种转义字符,它们是:一般转义字符、八进制转义字符和十六进制转义字符。
posted on 2015-09-13 15:35 Stomach_ache 阅读(215) 评论(0) 编辑 收藏 举报
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步