1.第一个C语言 程序
#include <stdio.h> //包含标准输入输出库
main() //main函数,程序入口
{
printf("Hello,world\n"); //\n为换行符
}
2.符号常量
在程序中我们经常会用到一些常量,如for循环中:
//连续输出10遍“Hello”
for(int i = 0; i < 10; i++)
{
printf("Hello\n");
}
上述代码中,别人在读这段程序时,如果不做好注释或者完成更加复杂的内容,会很难理解这个10代表什么意义。我们称之为“神仙数”或者“幻数”。
如果我们大量用到10所代表的变量,修改时会需要修改很多地方,容易漏掉,并且编译器不会报错,这样就会出现一些意想不到并且不易察觉的错误。
因此我们推荐用宏定义的方式调用类似的数值。
例如:
#include <stdio.h>
#define UPPERNUM 10
main()
{
for(int i = 0; i < UPPERNUM; i++) //此处采用宏定义,如果需要修改只需在#define处修改宏定义即可
printf("Hello\n");
}
3.参数---传值调用
C语言中,所有参数函数都是”通过值“传递的,也就是被调用函数的参数值存放在临时变量中,而不是存放在原来的变量中,即访问参数的本地副本。
被调用函数不能直接修改主调函数中变量的值,只是修改私有的临时副本的值。
int power(int base, int n)
{
int p;
for(p = 1; n > 0; --n)
p = p * base;
return p;
}
参数n在循环中,n执行递减运算,直到为0,power函数内部对n的任何操作不会影响到调用函数中n的原始参数值。
例如:
main()
{
int m_base = 3;
int m_num = 3;
int m_result = power(m_base, m_num);
printf("%d\n", m_result);
printf("%d\n", m_num);
}
27
3
(VC 6.0下测试)
此时m_num的初始值是3,调用power函数后,m_result得到计算结果为27,m_num依旧为3。
如果我们需要函数能都修改主调函数中的变量,我们一般采用传递指针的办法。
4.编程小技巧
在刚开始学编程的时候很容易出现的一个错误就是”==“判等与”=“赋值习惯性的出错,很容易漏掉一个等号,将”==“写为”=“,在检查错误的时候还不容易发现,
因此我们推荐一种写法 if(10==n),这种写法来判断两个值是否相等,前提是常量判等,这种情况下,如果错将”==“写为”=“,编译器会报错,因为它不允许将一个变量赋值给
常量。
编程小组刚刚起步,希望大家多提宝贵意见,谢谢!
(注:推荐书目 《C程序设计语言》 克尼汉版)