这篇博客主要介绍 C 语言的基础知识。
-
C 语言分为 C89 和 C99 两个标准,分别于 1989 年和 1999 年发布。
-
所有 C 语言程序必须记录在以
.c
作为扩展名的文件中,这种文件叫做源文件。 -
C 语言程序中可以使用加减乘除计算符号:
-
+
: 加法 -
-
: 减法 -
*
: 乘法 -
\
: 除法
-
-
C 语言中每个处理步骤后面都应该使用分好(
;
)跟其它步骤分隔,每个以分好结尾的处理步骤叫做一条语句。 -
C 语言中使用大括号(
{
和}
)对语句进行分组,绝大多数语句都必须属于某个分组,大括号是可以嵌套的,其层次没有限制,任何语句都不可以跨越大括号,大括号中的语句组成为一个语句块。每个顶级大括号都必须有其名称,不同的顶级大括号名称不同。 -
C 语言中必须有一个叫做
main
的顶级大括号,称为主函数,程序从主函数的第一条语句开始执行,当主函数的最后一条语句结束时,程序结束。 -
C 语言中指定一些小写英文单词作为关键字/保留字,它们都有特定的作用。
-
C 语言中使用大量的名称区分不同的东西,这些名字统称为标识(zhì)符,通常采用英文单词(或汉语拼音等),标识符命名规则:
-
第一个字符必须是英文字母或下划线(
_
)。 -
后面的字符可以是英文字母、下划线或数字。
-
标识符是大小写敏感的。
-
关键字不能用来做标识符使用。
-
标识符的长度没有限制,通常不使用单个字符,当标识符太长时,C89中截取前31个字符为有效,C99中截取前63个字符有效。
-
-
C 语言的书写规范:
-
一行中最多包含一条语句。
-
不同层次的语句使用缩进进行区分,层次越深缩进越长。
-
在适合的地方使用空格和空行。
-
标识符要使用驼峰式(如
MyName
)或下划线式(如my_name
)编写。
-
-
C 语言中提供了一组标准函数用来解决常见问题,每个标准函数都有自己的名字,不同的标准函数名字不同,使用标准函数需要编写函数调用语句。
-
注释:
-
单行注释: 以
//
开头,注释内容不能换行,单行注释不能写在语句中间。 -
多行注释: 以
/*
开头,以*/
结尾,注释内容允许换行,并且多行注释可以写在语句中间。
-
#include <stdio.h> /*头文件*/
int main()
{ //主函数
int number = 0,integer = 0;//变量声明
return 0;//返回0
}
#include "01demo.h"
int /*我是多行注释*/main() { //我是单行注释
return 0;
/*
我是多行注释
呵呵
*/
}
- 主函数有两个形式参数(Formal Argument),第二个形式参数表示一组相关字符串,第一个形式参数表示相关字符串的个数:
返回值类型 main(int argc,char* argv[]) {
return 指定类型的数据;
}
/*
主函数行参
*/
#include <stdio.h>
int main(int argc,char* argv[]) {
int num = 0;
for (num = 0;num <= argc -1;num++) {
printf("%s\n",argv[num]);
}
return 0;
}
-
程序的所有相关数据都放置在内存里,变量对应了内存中的某个存储位置,通过变量可以操作对应的存储位置中的数据,一个变量只能存储一种类型的数据。
-
变量声明语句: 通过指定变量类型、变量名称来声明变量的语句,不同变量的名称不同,多个同类型的变量可以使用一条语句同时声明,用逗号(,)隔开,在声明变量时可以直接赋值,称为变量的初始化。
-
赋值语句: 使用赋值运算符(
=
)向一个左值(通常是变量)对应的存储位置中放置数据。 -
将变量当作数据使用就可以从变量中读取数据,读取数据的操作不会影响其内容。
/*
变量练习1
声明变量、赋值
*/
#include <stdio.h>
int main(){
int number = 0,integer = 2,age = 1;//变量声明语句,并赋初值初始化,同类型可以使用一条语句
char name = 'a';
number = 8;//赋值语句
number = 2 + 5;//赋值语句
//9 = number;语句错误
printf("number = %d\n",number);//读取并打印number的值为7(即2+5)
integer = number + 3;//赋值语句
printf("number + 3%d\n",integer);//读取并打印integer的值为10,读取number值不会改变number数据
integer = 6.8;//赋值语句,类型不匹配,integer被赋值为6
printf("integer值为%d\n",integer);//读取打印integer的值为6
return 0;
}
/*
变量练习2
打印123456789
*/
#include <stdio.h>
int main(){
int num = 0;
num = 1;
printf("%d",num);
num = num + 1;
printf("%d",num);//1
num = num + 1;
printf("%d",num);//2
num = num + 1;
printf("%d",num);
num = num + 1;
printf("%d",num);
num = num + 1;
printf("%d",num);
num = num + 1;
printf("%d",num);
num = num + 1;
printf("%d",num);
num = num + 1;
printf("%d",num);
printf("\n");
return 0;
}
/*
变量练习3
打印
1 X 9 =9
2 X 8 =16
3 X 7 =21
4 X 6 =24
5 X 5 =25
*/
#include <stdio.h>
int main(){
int num1 = 0,num2 = 0;
num1 = 1;
num2 = 9;
printf("%d X %d = %d\n",num1,num2,num1 * num2);
num1 = num1 + 1;
num2 = num2 - 1;
printf("%d X %d = %d\n",num1,num2,num1 * num2);
num1 = num1 + 1;
num2 = num2 - 1;
printf("%d X %d = %d\n",num1,num2,num1 * num2);
num1 = num1 + 1;
num2 = num2 - 1;
printf("%d X %d = %d\n",num1,num2,num1 * num2);
num1 = num1 + 1;
num2 = num2 - 1;
printf("%d X %d = %d\n",num1,num2,num1 * num2);
return 0;
}
---------------------------------------------------------
符号/表示除法如果参与除法运算的两个数是整型,则计算结果也是整型
符号%表示取余(取模)
(详见 运算符 部分)
---------------------------------------------------------
09var.c
/*
变量练习3
打印
54321
4321
321
21
1
*/
#include <stdio.h>
int main(){
int num1 = 0,num2 = 0;
num1 = 54321;
printf("%d\n",num1);
num2 = 10000;
printf("%d\n",num1 % num2);
num2 = num2 / 10;
printf("%d\n",num1 % num2);
num2 = num2 / 10;
printf("%d\n",num1 % num2);
num2 = num2 / 10;
printf("%d\n",num1 % num2);
return 0;
}
---------------------------------------------------------
10var.c
/*
变量练习3
num1 num2对调
*/
#include <stdio.h>
int main(){
int num1 = 3,num2 = 7;
printf("num1是%d,num2是%d\n",num1,num2);
/*
num1 = num1 + num2;
num2 = num1 - num2;
num1 = num1 - num2;
*/
num1 = num2 - num1;
num2 = num2 - num1;
num1 = num2 + num1;
printf("num1是%d,num2是%d\n",num1,num2);
return 0;
}