《C程序设计》在编程中应注意方面
一、源程序的建立与运行
1. 源程序的建立
方法一:选择“File”/“New”命令,在“New”对话框中的“File”选项卡中双击“C++ Source File”选项,源程序保存时默认的扩展名为.CPP。
方法二:单击工具栏最左边的“New Text File”按钮,源程序保存时默认的扩展名为.TXT。因此要将扩展名改为.C或.CPP。
2. 多个程序的运行
当第1个C程序运行后,若要再运行第2个程序,必须先关闭工作区否则运行的仍为第1个程序。
关闭工作区的方法是:选择“File”/“Close Workspace”命令,弹出如下消息框,单击“否”按钮,表示仅关闭工作区但不关闭所有的文档窗口(即源程序编辑窗口)。
二、输入输出
1.输入函数scanf中的变量名前要加&(除指针变量或数组名外)
例如,输入一个整型数给整型变量a
正确的方法是:scanf(“%d”, &a);
错误的方法是:scanf(“%d”, a);
2.double型数据的输入格式符为%lf
例如,输入一个数给double变量x
正确的方法是:scanf(“%lf”, &x);/* %lf中的l是小写字母,不是数字1 */
错误的方法是:scanf(“%f”, &x);
3.输入函数scanf中不能加换行符\n
例如,输入一个整型数给整型变量a
正确的方法是:scanf(“%d”, &a);
错误的方法是:scanf(“%d\n”, &a);
三、运算符
1. 除法运算符 / :两个整数相除结果为整数
例如:6/4的结果是1,而不是1.5
2. 求余运算符 % :相除的两个数必须均为整数
例如:6%4的余数是2 不可以写成 6.5%4
3. 自增运算符 ++ :只允许整型变量才可以做自增运算
例如:++i 表示先增1再引用变量i 如:i=4; j=++i;/* i和j 均为5 */
i++ 表示先引用变量i再增1 如:i=4; j=i++;/* i为5,j 为4 */
4. 比较运算符 == :判别两个操作数是否相等
例如:x==8表示变量x是否等于8,不能写成x=8(x=8表示将8赋值给变量x)
5. 逻辑与 && 、逻辑或 ||
例如:a && b 当 a 为 0 时,结果为 0,不计算 b;仅当a为非0时,才需计算 b。
a || b 当 a 为 1 时,结果为 1,不计算 b;仅当a为0时,才需计算b。
四、复合语句
复合语句是指用一对花括号{}括起来的语句,花括号内往往由多个语句组成。在if语句中,若条件为真或为假要执行多个语句必须写成复合语句;在循环语句的循环体若要执行多个语句也必须写成复合语句。
五、数组
1. 数组的下标从0开始
例如:int a[10]; 表示定义一个整型数组a有10个元素,即a[0]~a[9]
2. 不能定义动态数组
例如:int a[m]; 且m是一个变量是不允许的
3. 字符数组的输入
(1) 对字符数组输入一个字符串,数组名前不能加&
例如:char a[100];
正确的方法是:scanf(“%s”, a);/* 数组名是一个地址,前面不能加& */
错误的方法是:scanf(“%s”, &a);
(2) 输入的字符串中含有空格字符,应使用gets函数
例如:char a[100];/* 在字符数组a中输入Fudan University */
正确的方法是:gets(a);
错误的方法是:scanf(“%s”, a);/* 字符数组a中只收到Fudan */
六、函数
1. 实参向形参的数据传递是“值传递”
只有实参的值可以传递给形参,形参的值不能传递给实参(除指针间接引用外)。
2. 形参与实参类型的匹配
形参类型实参类型说明一般变量同类型的常量、变量或表达式形参变化不会影响实参数组名数组名或元素地址形参变化影响实参指针变量变量地址、数组名、字符串或指针变量形参变化影响实参3. return语句
return语句有以下两种格式:
return ; :将结果返回到调用函数。如果一个函数有返回结果,在函数体内至少出现一个return 语句。
return; :返回到调用函数,但无返回结果。如果一个函数无返回结果,在函数体内可以出现return语句,但其后无返回结果,也可以没有return语句。
4. 局部变量与全局变量
局部变量:局部变量只有在定义的范围内有效,当离开了定义范围,变量被自动释放,其值不予保留。
全局变量:在整个程序范围内有效,其定义一般写在所有函数之前。
5. 静态变量
使用static说明的变量称为静态变量。其特点如下:
静态变量未赋初值,C编译系