新闻  |   论坛  |   博客  |   在线研讨会
[转载]C语言学习笔记(1)
jobs | 2012-07-12 16:20:50    阅读:1558   发布文章

  C语言学习笔记(1)
2010-03-30 09:31:10
标签:C语言 笔记 学习 休闲 c
原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://kymsha.blog.51cto.com/647951/289350

1. 编译和链接

将程序转化为机器可执行的代码,C语言分为三个步骤:

A. 预编译。程序首先会交给预处理器,预处理器执行以#开头的指令,然后给程序添加指令,或者修改指令。

B. 编译。修改后的程序进入编译器,编译器会把程序翻译成机器指令(也就是目标代码),但是这样的程序还是不能执行的。

C. 链接。链接器把由编译器产生的目标代码和其他所需的代码整合到一起,这些附加代码包括程序中用到的库函数。这样就产生了完全可执行的程序。

2. main函数中的exit和return

在main函数中,以两者结尾是一样的。都是终止程序执行,并且向操作系统返回0。

不过exit需要引入stdlib.h库函数。

  1. #include <stdio.h>  
  2. #include <stdlib.h>  
  3. int main (void)  
  4. {  
  5. printf("Hello world");  
  6. exit(0);  
  7. //return 0;  

3. %i和%d

在printf中使用时,两者没有区别,但是在scanf中,%d只能接受10进制的整数。

但是%i还可以接受八进制和十六进制的整数。

  1. #include <stdio.h>  
  2. #include <stdlib.h>  
  3. int main (void)  
  4. {  
  5. int i ;  
  6. scanf_s("%i",&i);  
  7. printf("%d",i);  

image 

4. scanf函数

scanf本质上是一种“模式匹配”函数。

但是在Visual Studio中调用scanf函数时会给出这样的提示:The function may be unsafe.Please using scanf_s instead.

当用户从键盘输入时,程序并没有读取输入,而是把用户的输入放在一个隐藏的缓冲区中,由scanf来读取。因此如果用户输入了多余的字符,scanf无法彻底完成模式匹配,scanf就会把字符放回缓冲区供后续scanf函数的读取。

本文出自 “kym” 博客,请务必保留此出处http://kymsha.blog.51cto.com/647951/289350

*博客内容为网友个人发布,仅代表博主个人观点,如有侵权请联系工作人员删除。

参与讨论
登录后参与讨论
落月风情  2012-07-14 00:39:35 

好东东啊,拜读了

推荐文章
最近访客