{
int x, y; x=50;
y=(x=x-5, x/5); }
上面程序执行后y值为9, 因为x的初始值为50, 减5后变为45, 45除5为9赋给 y。
C语言基础教程(二十二)
网上收集整理 运算符(6)
四、sizeof运算符
sizeof运算符是一个单目运算符, 它返回变量或类型的字节长度。 例如:
sizeof(double) 为8 sizeof(int) 为2
也可以求已定义的变量, 例如: float f; int i;
i=sizeof(f);
则i的值将为4。
五、联合操作
Turbo C中有一特殊的简写方式, 它用来简化一种赋值语句, 适用于所有的 双目运算符。其一般形式为:
<变量>=<变量><操作数><表达式> 相当于
<变量><操作数>=<表达式> 例如:
a=a+b 可写成 a+=b a=a&b 可写成 a&=b a=a/(b-c) 可写成 a/=b-c 5.5 Turbo C运算符的优先级
Turbo C规定了运算符的优先次序即优先级。 当一个表达式中有多个运算符 参加运算时, 将按下表所规定的优先级进行运算。表中优先级从上往下逐渐降低, 同一行优先级相同。 例如:
表达式 10>4&&!(100<99)||3<=5 的值为1 表达式 10>4&&!(100<99)&&3<=5 的值为0
Turbo C运算符的优先次序
━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━
表达式 ┃优先级 ────────────────────────────╂──── ()(小括号) [](数组下标) .(结构成员) ->(指针型结构成员)┃ 最高
────────────────────────────┃ ↑ !(逻辑非) .(位取反) -(负号) ++(加1) --(减1) &(变量地址)┃ │
────────────────────────────┃ │ *(指针所指内容) type(函数说明) sizeof(长度计算) ┃ │ ────────────────────────────┃ │ *(乘) /(除) %(取模) ┃ │ ────────────────────────────┃ │ +(加) -(减) ┃ │ ────────────────────────────┃ │ <<(位左移) >>(位右移) ┃ │ ────────────────────────────┃ │ <(小于) <=(小于等于) >(大于) >=(大于等于) ┃ │ ────────────────────────────┃ │ ==(等于) !=(不等于) ┃ │ ────────────────────────────┃ │ &(位与) ┃ │ ────────────────────────────┃ │ ^(位异或) ┃ │ ────────────────────────────┃ │ |(位或) ┃ │ ────────────────────────────┃ │ &&(逻辑与) ┃ │ ────────────────────────────┃ │ ||(逻辑或) ┃ │ ────────────────────────────┃ │ ?:(?表达式) ┃ │ ────────────────────────────┃ │ = += -=(联合操作) ┃ │ ────────────────────────────┃ │ ,(逗号运算符) ┃ 最低
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
[上一页] [下一页]
语言基础教程(二十四)
网上收集整理 函数(2)
1. 函数的说明与定义
Turbo C2.0中所有函数与变量一样在使用之前必须说明。所谓说明是指说明函
数是什么类型的函数, 一般库函数的说明都包含在相应的头文件<*.h>中, 例如标 准输入输出函数包含在stdio.h中, 非标准输入输出函数包含在io.h中, 以后在使 用库函数时必须先知道该函数包含在什么样的头文件中, 在程序的开头用#include <*.h>或#include\说明。只有这样程序在编译, 连接时Turbo C 才知道它是提 供的库函数, 否则, 将认为是用户自己编写的函数而不能装配。
1.1 函数说明
1. 经典方式
其形式为: 函数类型 函数名(); 2. ANSI 规定方式
其形式为: 函数类型 函数名(数据类型 形式参数, 数据类型 形式 参数, ......);
其中: 函数类型是该函数返回值的数据类型, 可以是以前介绍的整型(int), 长整型(long), 字符型(char), 单浮点型(float), 双浮点型(double)以及无值型 (void), 也可以是指针, 包括结构指针。无值型表示函数没有返回值。
函数名为Turbo C2.0的标识符, 小括号中的内容为该函数的形式参数说明。可 以只有数据类型而没有形式参数, 也可以两者都有。对于经典的函数说明没有参数 信息。如:
int putlll(int x,int y,int z,int color,char *p)/*说明一个整型函数*/ char *name(void); /*说明一个字符串指什函数*/ void student(int n, char *str); /*说明一个不返回值的函数*/ float calculate(); /*说明一个浮点型函数*/
注意: 如果一个函数没有说明就被调用, 编译程序并不认为出错, 而将此函数 默认为整型(int)函数。因此当一个函数返回其它类型, 又没有事先说明, 编译时 将会出错。
1.2 函数定义
函数定义就是确定该函数完成什么功能以及怎么运行, 相当于其它语言的一个 子程序。Turbo C2.0对函数的定义采用ANSI规定的方式。即:
函数类型 函数名(数据类型形式参数; 数据类型 形式参数...) {
函数体; }
其中函数类型和形式参数的数据类型为Turbo C2.0的基本数据类型。函数体为 Turbo C2.0提供的库函数和语句以及其它用户自定义函数调用语句的组合, 并包括 在一对花括号\和\中。
需要指出的是一个程序必须有一个主函数, 其它用户定义的子函数可以是任意 多个, 这些函数的位置也没有什么限制, 可以在main()函数前, 也可以在其后。 Turbo C2.0将所有函数都被认为是全局性的。而且是外部的, 即可以被另一个文件 中的任何一个函数调用。
C语言基础教程(二十五)
网上收集整理 函数(3)
2 函数的调用
2.1 函数的简单调用
Turbo C2.0调用函数时直接使用函数名和实参的方法, 也就是将要赋给被调用 函数的参量, 按该函数说明的参数形式传递过去, 然后进入子函数运行, 运行结束 后再按子函数规定的数据类型返回一个值给调用函数。使用Turbo C2.0的库函数就 是函数简单调用的方法。举例说明如下: 例1:
#include
int maxmum(int x, int y, int z); /*说明一个用户自定义函数*/ int main() {
int i, j, k;
printf(\
scanf(\ maxmum(i, j, k); getch(); return 0; }
maxmum(int x, int y, int z) {
int max;
max=x>y?x:y;
max=max>z?max:z;
printf(\ }
C语言基础教程(二十六)
网上收集整理 函数(4)
2 函数的调用
2.2 函数参数传递
一、调用函数向被调用函数以形式参数传递
用户编写的函数一般在对其说明和定义时就规定了形式参数类型, 因此调用这
些函数时参量必须与子函数中形式参数的数据类型、顺序和数量完全相同, 否则在 调用中将会出错, 得到意想不到的结果。 注意:
当数组作为形式参数向被调用函数传递时, 只传递数组的地址, 而不是将整个 数组元素都复制到函数中去, 即用数组名作为实参调用子函数, 调用时指向该数组 第一个元素的指针就被传递给子函数。因为在Turbo C2.0中, 没有下标的数组名就 是一个指向该数组第一个元素的指针。当然数组变量的类型在两个函数中必须相同。 用下述方法传递数组形参。 例2:
#include
int m[10], i;
for(i=0; i<10; i++) m[i]=i;
disp(m); /*按指针方式传递数组*/ getch(); return 0; }
void disp(int *n) {
int j;
for(j=0; j<10; j++)
printf(\ printf(\ }
另外, 当传递数组的某个元素时, 数组元素作为实参, 此时按使用其它简单变 量的方法使用数组元素。例2按传递数组元素的方法传递时变为: #include
int m[10], i;
for(i=0; i<10; i++){ m[i]=i;
disp(m[i]); /*逐个传递数组元素*/ }
getch(); return 0; }
void disp(int n) {
printf(\
C语言基础教程



