C语言速成手册(一):基本数据类型、标准输出、函数
2007-06-02 22:10
393 查看
语句和语句块
和Pascal一样,C语言的每条语句以分号结尾。
和Pascal一样,单词和语句间的空格、回车符对编译没有影响。
C语言的语句块用花括号标识,也就是说字符 { 相当于Pascal的begin,字符 } 相当于Pascal的end; 。语句块中最后一条语句末尾的分号不能省略。
如果语句块里只有一条语句,语句块的标识可以省略。这就好像Pascal代码:
里面的begin和end可以省略一样。
注释的写法
两种情形被认为是注释。符号// 的后面(只限一行),以及符号 /* 和 */ 之间(可以跨行)。例如:
常用数据类型
C | Pascal
-------------------+------------
short | shortint
int | integer
long | longint
long long | int64
unsigned short | byte
unsigned int | word
unsigned long | dword
unsigned long long | qword
float | real
double | double
char | char
定义变量
定义变量使用这样的格式:
变量名的命名规则与Pascal相同:只能用大小写字母、数字或下划线,第一个字符不用数字。所不同的是,C语言中定义的名称要区分大小写。
例如,下面的两条语句定义了三个整型变量和一个字符变量。
和Pascal不同,变量的声明不一定要在整个代码前。你可以在程序中任意一个地方定义一个新的变量。定义的变量只能在当前函数(中的当前语句块)后面的代码中使用。也就是说,不同函数之间的变量不能混用,在某循环里定义的变量在循环外面是无效的。定义在函数外的变量将作为全局变量供后面的函数使用。
定义常量
为了告诉编译器某个变量不会改变,你可以在变量定义前加一个const。例如,下面的语句定义了一个常数:
基本数学运算
作用 | C | Pascal
---------+-----+-----------
加 | + | +
减 | - | -
乘 | * | *
除 | / | / 或 div
取余 | % | mod
除法的结果是整数还是小数取决于参与运算的数是整数还是小数。10 / 4等于2,但写成 10.0 / 4 或 10 / 4.0 就得2.5了。
关于字符类型
C语言中的字符用一对单引号' '标注。例如,'A'表示字符A。
无法打印或可能产生冲突的字符用反斜杠加一个字符来表示,这叫做转义符。常用转义符如下:
/n 换行
/t Tab
/a 响铃
/" 双引号
/' 单引号
/? 问号
// 反斜杠
因此,'/''表示一个单引号,虽然它看上去像是两个字符。
字符类型可以依照ASCII码进行数学运算。例如,字符变量ch可能被赋值为'A'+2(这样ch就等于'C'),而'0'+'1'则等于'a'。
C语言中的赋值
和Pascal不一样,C语言的赋值只用一个等号,等号前没有冒号。
声明变量时后面可以跟一个等号赋初始值。
下面的语句都是合法的:
类型转换与“名词动用”
C语言中,不同类型的变量可以相互赋值,程序将自动转换类型(即使是数字与字符之间)。
C语言中也存在“使动”用法(类似于Pascal中使用int64(a)扩展变量长度的用法)。假如a是整型,(double)a表示“实数版的a”;假如ch是一个字符,(int)ch就相当于Pascal中的ord(ch)。
考虑下面的代码:
这段代码中,a最终被赋值为122,b得到的值是20,而c的值则为字符'0';d获得的值为6.0,而e的值是6.1 。
标准输出
输出使用printf函数。printf函数的使用方法如下:
C语言的字符串用一对双引号" "注明,里面允许有转义符。printf将把字符串输出到屏幕上。字符串中可以有若干个标识,这些标识帮后面待输出的内容“占一个位置”。常用的标识格式为%[x][.y](c|d|f|e),其中x表示输出占的宽度,y表示保留位数;c,d,e,f四个字母表示输出类型,你需要选择一个。c表示输出字符,d(也可以用 i )表示输出整数,f表示输出小数,e用科学计数法表示小数。printf后面的参数依次“填入”这些标识。注意d和e,f不能混用,也就是说,你不能把一个小数输出成整数格式,或把整数输出成小数格式(除非事先转了类型)。
特别地,%%表示输出一个百分号。
观察下列代码片段
程序输出的结果为:
函数的定义、返回和调用
定义一个函数的格式如下:
如果某个函数不返回任何数据(相当于Pascal中的“过程”),函数返回类型要写成void。如果不写返回类型,函数默认返回类型为int。
如果某个函数不带任何参数,参数表一般留空(也可以用一个void代替)。
为了强调某个参数在整个函数中始终不变,类型前可以标明const。
函数的返回使用下面的语句:
执行这条语句将立即终止该函数的运行。
下面定义的一个函数可以返回三个数的平均值:
C语言也支持函数的内联,方法是在函数返回类型前加inline。例如:
函数的调用方法和Pascal一样。如果调用函数所带的参数类型和定义的不一样,程序会自动转换类型。下面的语句合法地调用了刚才定义的函数:
有一点不同的是,当所调用的函数不带参数时仍然要写括号,例如:
C语言同样支持递归调用。由于C语言也只能调用前面定义过的函数,因此C同样需要类似于向前引用的方法。具体方法是把需要提前引用的函数的第一行复制一份提到前面去。下面的两种做法都是正确的,其中第一种方法允许在output函数里调用后面的average,第二种则允许在这句话后面的所有函数中调用它。
事实上,向前引用时参数名已经没有意义,因此参数名可以省略,直接写成这样:
C语言中也允许在函数中定义子函数(函数的嵌套)。标准的C语言不支持在函数中定义子函数(函数的嵌套),虽然某些编译器可能支持。
一个完整的程序代码的构成
代码前几行用于包含头文件,每行包含一个,格式如下:
常用的头文件有stdlib.h, stdio.h, string.h, math.h等等,分别提供一些常用函数、输入输出函数、字符串函数和数学相关函数。注意我们之前用的printf函数是属于stdio.h里的,因此要使用该函数必须在代码最开头加入#include <stdio.h>。
接下来是若干个函数。这些函数里必须有一个名为main的函数,它返回的值是一个int类型,代表程序的退出代码(0=正常退出)。程序会自动寻找这个函数作为主函数执行。
下面的代码是一个完整的C程序代码,这是我们的第一个完整的程序代码:
和Pascal一样,C语言的每条语句以分号结尾。
和Pascal一样,单词和语句间的空格、回车符对编译没有影响。
C语言的语句块用花括号标识,也就是说字符 { 相当于Pascal的begin,字符 } 相当于Pascal的end; 。语句块中最后一条语句末尾的分号不能省略。
如果语句块里只有一条语句,语句块的标识可以省略。这就好像Pascal代码:
for i:=1 to n do begin writeln('I Love You'); end;
里面的begin和end可以省略一样。
注释的写法
两种情形被认为是注释。符号// 的后面(只限一行),以及符号 /* 和 */ 之间(可以跨行)。例如:
/* ===================== = THIS IS A COMMENT = ===================== */ // This is a comment.
常用数据类型
C | Pascal
-------------------+------------
short | shortint
int | integer
long | longint
long long | int64
unsigned short | byte
unsigned int | word
unsigned long | dword
unsigned long long | qword
float | real
double | double
char | char
定义变量
定义变量使用这样的格式:
类型名 变量名1, 变量名2, ... , 变量名n;
变量名的命名规则与Pascal相同:只能用大小写字母、数字或下划线,第一个字符不用数字。所不同的是,C语言中定义的名称要区分大小写。
例如,下面的两条语句定义了三个整型变量和一个字符变量。
int a,b,c; char ch;
和Pascal不同,变量的声明不一定要在整个代码前。你可以在程序中任意一个地方定义一个新的变量。定义的变量只能在当前函数(中的当前语句块)后面的代码中使用。也就是说,不同函数之间的变量不能混用,在某循环里定义的变量在循环外面是无效的。定义在函数外的变量将作为全局变量供后面的函数使用。
定义常量
为了告诉编译器某个变量不会改变,你可以在变量定义前加一个const。例如,下面的语句定义了一个常数:
const int maxn=2000;
基本数学运算
作用 | C | Pascal
---------+-----+-----------
加 | + | +
减 | - | -
乘 | * | *
除 | / | / 或 div
取余 | % | mod
除法的结果是整数还是小数取决于参与运算的数是整数还是小数。10 / 4等于2,但写成 10.0 / 4 或 10 / 4.0 就得2.5了。
关于字符类型
C语言中的字符用一对单引号' '标注。例如,'A'表示字符A。
无法打印或可能产生冲突的字符用反斜杠加一个字符来表示,这叫做转义符。常用转义符如下:
/n 换行
/t Tab
/a 响铃
/" 双引号
/' 单引号
/? 问号
// 反斜杠
因此,'/''表示一个单引号,虽然它看上去像是两个字符。
字符类型可以依照ASCII码进行数学运算。例如,字符变量ch可能被赋值为'A'+2(这样ch就等于'C'),而'0'+'1'则等于'a'。
C语言中的赋值
和Pascal不一样,C语言的赋值只用一个等号,等号前没有冒号。
声明变量时后面可以跟一个等号赋初始值。
下面的语句都是合法的:
int a=3, b=106, c=a+b, d; char ch = c - '0'; d = a * b;
类型转换与“名词动用”
C语言中,不同类型的变量可以相互赋值,程序将自动转换类型(即使是数字与字符之间)。
C语言中也存在“使动”用法(类似于Pascal中使用int64(a)扩展变量长度的用法)。假如a是整型,(double)a表示“实数版的a”;假如ch是一个字符,(int)ch就相当于Pascal中的ord(ch)。
考虑下面的代码:
int a; int b; char c; double d,e; a = 'z'; b = 20.736; c = b + 28; d = a / b; e = (double) a / b;
这段代码中,a最终被赋值为122,b得到的值是20,而c的值则为字符'0';d获得的值为6.0,而e的值是6.1 。
标准输出
输出使用printf函数。printf函数的使用方法如下:
printf (字符串, 待输出表达式1, 待输出表达式2, ... , 待输出表达式n );
C语言的字符串用一对双引号" "注明,里面允许有转义符。printf将把字符串输出到屏幕上。字符串中可以有若干个标识,这些标识帮后面待输出的内容“占一个位置”。常用的标识格式为%[x][.y](c|d|f|e),其中x表示输出占的宽度,y表示保留位数;c,d,e,f四个字母表示输出类型,你需要选择一个。c表示输出字符,d(也可以用 i )表示输出整数,f表示输出小数,e用科学计数法表示小数。printf后面的参数依次“填入”这些标识。注意d和e,f不能混用,也就是说,你不能把一个小数输出成整数格式,或把整数输出成小数格式(除非事先转了类型)。
特别地,%%表示输出一个百分号。
观察下列代码片段
printf ("Welcome to Matrix67.com /n"); printf ( "4 + 5 = %d/nand 4 - 5 = %d/n/n", 4 + 5 , 4 - 5 ); int a = 102; printf ( "2 * a = %.5d/n" , 2 * a ); printf ( "2 * a = %f/n", (double) 2 * a ); printf ( "2 * a = %8d/n" , 2 * a ); printf ( "2 * a = %8.5d/n", 2 * a ); printf ( "a = /'%c/'/n/n", a ); double b = 7; printf ( "a / b = %f/n", a / b ); printf ( "a / b = %e/n", a / b ); printf ( "a / b = %.9f/n", a / b ); printf ( "a / b = %.3f/n", a / b ); printf ( "a / b = %8.3f/n", a / b ); printf ( "b / a = %.3f%%/n/n", b / a * 100 ); char c = 'A'; printf ( "c = %c/n", c ); printf ( "c = %3c/n", c ); printf ( "c = %d/n", c ); printf ( "%c%c%c%c%c%c%d.com/n",c+12,c+32,c+51,c+49,c+40,c+55,a-35);
程序输出的结果为:
Welcome to Matrix67.com 4 + 5 = 9 and 4 - 5 = -1 2 * a = 00204 2 * a = 204.000000 2 * a = 204 2 * a = 00204 a = 'f' a / b = 14.571429 a / b = 1.457143e+001 a / b = 14.571428571 a / b = 14.571 a / b = 14.571 b / a = 6.863% c = A c = A c = 65 Matrix67.com
函数的定义、返回和调用
定义一个函数的格式如下:
函数返回类型 函数名( 参数类型1 参数名1, 参数类型2 参数名2, ... , 参数类型n 参数名n ) { 函数内容 }
如果某个函数不返回任何数据(相当于Pascal中的“过程”),函数返回类型要写成void。如果不写返回类型,函数默认返回类型为int。
如果某个函数不带任何参数,参数表一般留空(也可以用一个void代替)。
为了强调某个参数在整个函数中始终不变,类型前可以标明const。
函数的返回使用下面的语句:
return 表达式;
执行这条语句将立即终止该函数的运行。
下面定义的一个函数可以返回三个数的平均值:
double average (double a , double b , double c) { double sum=a+b+c; return sum/3; }
C语言也支持函数的内联,方法是在函数返回类型前加inline。例如:
inline double average (double a , double b , double c) { double sum=a+b+c; return sum/3; }
函数的调用方法和Pascal一样。如果调用函数所带的参数类型和定义的不一样,程序会自动转换类型。下面的语句合法地调用了刚才定义的函数:
num = average( 2, 6.5, 4.23 );
有一点不同的是,当所调用的函数不带参数时仍然要写括号,例如:
void writeMessage() { printf("Welcome to Matrix67.com"); } void output() { writeMessage(); }
C语言同样支持递归调用。由于C语言也只能调用前面定义过的函数,因此C同样需要类似于向前引用的方法。具体方法是把需要提前引用的函数的第一行复制一份提到前面去。下面的两种做法都是正确的,其中第一种方法允许在output函数里调用后面的average,第二种则允许在这句话后面的所有函数中调用它。
void output()
{
double average (double a , double b , double c);
printf( "%f",average( 2, 6.5, 4.23 ) );
}
double average (double a , double b , double c) { double sum=a+b+c; return sum/3; }
double average (double a , double b , double c);
void output()
{
printf( "%f",average( 2, 6.5, 4.23 ) );
}
double average (double a , double b , double c) { double sum=a+b+c; return sum/3; }
事实上,向前引用时参数名已经没有意义,因此参数名可以省略,直接写成这样:
double average (double , double , double );
C语言中也允许在函数中定义子函数(函数的嵌套)。标准的C语言不支持在函数中定义子函数(函数的嵌套),虽然某些编译器可能支持。
一个完整的程序代码的构成
代码前几行用于包含头文件,每行包含一个,格式如下:
#include <头文件名>
常用的头文件有stdlib.h, stdio.h, string.h, math.h等等,分别提供一些常用函数、输入输出函数、字符串函数和数学相关函数。注意我们之前用的printf函数是属于stdio.h里的,因此要使用该函数必须在代码最开头加入#include <stdio.h>。
接下来是若干个函数。这些函数里必须有一个名为main的函数,它返回的值是一个int类型,代表程序的退出代码(0=正常退出)。程序会自动寻找这个函数作为主函数执行。
下面的代码是一个完整的C程序代码,这是我们的第一个完整的程序代码:
#include <stdio.h>
double average (double a , double b , double c) { double sum=a+b+c; return sum/3; }
int main()
{
double a=24;
double b=102;
double c=77;
printf("Matrix%d.com原创/n转贴请注明出处", (int)average(a,b,c));
return 0;
}
相关文章推荐
- C语言基础:进制转换,变量,常量,表达式,基本数据类型,输出函数,输入函数,运算符. 分类: iOS学习 c语言基础 2015-06-10 21:39 25人阅读 评论(0) 收藏
- C语言基础:进制转换,变量,常量,表达式,基本数据类型,输出函数,输入函数,运算符.
- C语言基础学习基本数据类型-字符专属的输入输出函数
- C语言基础学习基本数据类型-字符专属的输入输出函数
- C语言基础学习基本数据类型-字符专属的输入输出函数
- Android JNI编程(二)——C语言的基本数据类型,输出函数,输入函数
- C语言基础学习基本数据类型-变量的输出与输入
- C语言基础学习基本数据类型-变量的输出与输入
- C语言基础学习基本数据类型-变量的输出与输入
- C++ 学习笔记 1.0 : 基本语言(变量和基本类型,标准库类型,表达式,语句,函数,标准IO库)
- 编译器定义的C/C++语言各种基本数据类型的取值范围用程序输出
- Android JNI编程(二)——C语言的基本数据类型,输出函数,输入函数
- JAVA入门.零基础学Java语言 MOOC 第6周 使用对象(基本数据类型的包裹类型对象) 第7周 函数
- python 入门-输入输出与基本数据类型
- C语言技巧【枚举作为函数变量类型】【数据输入与输出】【do while循环体内scanf函数被跳过,循环结束】【用const修饰函数的参数】
- GO语言基本数据类型总结
- 关于java浮点型的数据输出格式以及默认的基本数据类型转换
- C语言基础学习基本数据类型-浮点型
- Symbian OS 开发初级手册 (2)基本数据类型
- 03:C语言数据类型、变量的输入和输出、进制转换、操作符