1 为什么调用 printf() 前, 必须要用 #include ?
2 为什么 %f 可以在 printf() 参数中, 同时表示 float 和 double?他们 难道不是不同类型吗?
3 为什么当 n 为 long int, printf("%d", n); 编译时没有匹配警告? 我以为 ANSI 函数原型可以防止这样的类型不匹配
4 怎样写一个有可变参数的函数?
5 怎样写类似 printf() 的函数, 再把参数转传给 printf() 去完成大部 分工作?
6 怎样写类似 scanf() 的函数, 再把参数转传给 scanf() 去完成大部 分工作?
7 怎样知道实际上有多少个参数传入函数?
8 为什么编译器不让我定义一个没有固定参数项的可变参数函数?
9 我有个接受 float 的可变参函数, 为什么 va arg(argp, float) 不工作?
10 va arg() 不能得到类型为函数指针的参数。
11 怎样实现一个可变参数函数, 它把参数再传给另一个可变参数函 数?
12 怎样调用一个参数在执行是才建立的函数?
13 遇到不可理解的不合理语法错误, 似乎大段的程序没有编译。
14 为什么过程调用不工作?编译器似乎直接跳过去了。
15 程序在执行用之前就崩溃了, 用调试器单步跟进, 在 main() 之前 就死了。
16 程序执行正确, 但退出时崩溃在 main() 最后一个语句之后。为什 么会这样?
17 程序在一台机器上执行完美, 但在另一台上却得到怪异的结果。 更奇怪的是, 增加或去除调试的打印语句, 就改变了症状
18 为什么代码: char *p = "hello, worl!"; p[0] = ’H’; 会崩溃?
19 “Segmentation violation”, “Bus error” 和 “General protection fault”意味着什么?
![1c83068dbb9c1426d469f6ccdf6f92f9.png](https://i-blog.csdnimg.cn/blog_migrate/601d18412f0d0e207fe5f40266154d28.jpeg)
![522d1161962a63314e68e26856327296.png](https://i-blog.csdnimg.cn/blog_migrate/0873e5c764daaaf4ee52d564bce59089.jpeg)
![45ac6ab76d691779d083eff973f7ec7e.png](https://i-blog.csdnimg.cn/blog_migrate/a36700c7965f7bd326c94e442a695378.jpeg)
![bfafb6ff079d10c06a67f6f8353acf75.png](https://i-blog.csdnimg.cn/blog_migrate/0eafd5ffc77b52a735abda579b889a00.jpeg)
![350d8231ec72f848a7d0ae6547434e30.png](https://i-blog.csdnimg.cn/blog_migrate/c0bbe13306fc90366fe2ee20d9977d6b.jpeg)
![a04c091608f1d9c9679781f10156b3f3.png](https://i-blog.csdnimg.cn/blog_migrate/c162ef2d3247f24f05e7a745b138edb8.jpeg)
![23b9f9db537c60e30ae8c389c8e79181.png](https://i-blog.csdnimg.cn/blog_migrate/abe585e775e37f75fda88cc01f1528ee.jpeg)
![6afb8f31cdeadb6e864fb2eea1507167.png](https://i-blog.csdnimg.cn/blog_migrate/95ffcdbc66664706b0f97a1d25a8f95b.jpeg)