这篇博客主要介绍 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;
}
 李二狗 — @Meniny
                李二狗 — @Meniny
             
            
             
                 
                