C语言入门编程学习———语法与语句

时间:2024-02-21 17:41:21

1. C语言概述

    1.1  C语言功能

a. 运行效率高,现在已经代替了汇编语言。

b. 编程效果和高级语言基本一致(JAVA)。

c. 代码量小,速度快,功能强大。

d. C语言是最广泛使用的系统程序设计语言。

    1.2  编译  

       编译(Compile):编译器识别代码中的词汇、句子以及各种特定的格式,并将他们转换成计算机能够识别的二进制形式的过程。

      C程序编写完成后,首先通过编译转换成目标文件,然后通过C语言函数库连接创建可执行程序,最后才可以执行该程序。   

文件类型解释表示形式
源文件用户创建文件 .c
目标文件编译器的输出结果.o 或者 .obj
头文件    含有函数声明和预处理语句,用于帮助访问外部定义的函数。.h
可执行文件连接器的输出结果。.exe

        IDE(Integrated Development Environment,集成开发环境)。

 

2. C语言结构和语法

    2.1  Hello world实例    

#include<stdio.h>        // 以#开始的语句叫做预处理指令,告诉编译器在编译前要包含的头文件。stdio.h包含输入输出语句相关函数。

int main()                      //主函数,程序执行的入口。mian()函数可以返回返回值也可以不返回,如果不返回的话使用关键词void。

{

       printf(“Hello world!\n”);  //打印函数,在屏幕上显示消息,并换行(\n)。

       return 0;               //终止main函数,并返回值0。

}    

scanf():从标准输入读取信息函数    &用于指明在内存中的位置。

printf():标准输出函数

     

  举例:  double sum=168.1790021      printf(“%7.2f”,sum);        输出结果为:  _ 168.18         .2 为小数点后的位数,7为总位数 

    2.2  C数据类型

基本类型:算术类型,包括两种类型:整数类型和浮点类型。

枚举类型:算术类型,被用来定义在程序中只能赋予其一定的离散整数值的变量。

void 类型:类型说明符 void 表明没有可用的值。

派生类型:包括:指针类型、数组类型、结构类型、共用体类型和函数类型。

    2.3  常量与变量

(1) 变量的名称可以由字母、数字和下划线字符组成。但必须以字母或下划线开头,C语言区分大小写,所以变量price与变量PRICE是两个不同的变量。                                               

(2) 常量是固定值,可以是任何的基本数据类型,常量的值在定义后不能进行修改。                                               

(3) 全局变量和局部变量

 全局变量

定义所有函数外部;从定义的时候开始分配空间,到整个代码执行结束,空间就被释放;

作用域:从变量定义位置以下,所有函数都能使用和修改;

初始值:默认为0;

局部变量

定义在函数内部或者复合语句中;从局部变量所在的函数被调用,才会为其分配空间;

作用域:只能用于变量所在函数的内部或者复合语句中;

初始值:默认为随机数;

注意:全局变量与局部变量重名,会怎么样?

  采取就近原则,局部变量所在的函数内部,会优先选择使用局部变量;

    2.4  形参与实参

         1) 形参只在函数被调用时才会分配内存,调用结束后,立刻释放内存,只有在函数内部使用有效。

         2) 实参可以是常量、变量、表达式、函数等类型的数据,在进行函数调用时,必须有确定的值,以便把这些值传送给形参,应提前用赋值、输入等办法使实参获得确定值。                                                               

         3) 实参和形参在数量、类型、顺序上必须严格一致,否则会发生“类型不匹配”。函数调用中发生的数据传送是单向的,只能把实参的值传送给形参,而不能把形参的值反向传送给实参。 因此在函数调用过程,形参的值发生改变,而实参中的值不会变化。

    2.5  存储类型关键字

        (1) auto关键字

            auto关键字是所有局部变量默认的存储类。只能用在函数内,只能修饰局部变量。

        (2) register关键字

             register关键字用于定义存储在寄存器中而不是RAM中的局部变量。寄存器只用于需要快速访问的变量。

        (3) static关键字

            static关键字指示编译器在程序的生命周期内保持局部变量的存在,而不需要在每次它进入和离开作用域时进行创建和销毁。 因此,使用static修饰局部变量可以在函数调用之间保持局部变量的值当static修饰全局变量时,会使变量的作用域限制在声明它的文件内。  

       (4) extern关键字

           extern用于提供一个全局变量的引用,全局变量对所有的程序文件都是可见的。extern是用来在另一个文件中声明一个全局变量或函数。即适用于两个文件以上。

    2.6  C运算符

运算符是一种告诉编译器执行特定的数学或逻辑操作的符号。

算术运算符: +  -  *  /  %  ++  --

关系运算符:  ==  !=  >  <  >==  <==

逻辑运算符:  &&  ||  !

位运算符   :  &   |   ^  ~  <<  >>

赋值运算符:  = +=  -=  *=  /=

杂项运算符:  sizeof() 返回变量值    & 返回地址    * 指向变量    ?: 条件表达式

3.  语句

    1.  if语句

#include <stdio.h>

int main()

{

          int a, b, max;

printf("输入两个整数: ");

scanf("%d %d", &a, &b);

if(a>b) max=a;

else max=b;

printf("%d 和%d 的较大值是: %d\n", a, b, max);

return 0;

} 

    2.  switch语句

     一个 switch 语句允许测试一个变量等于多个值时的情况。每个值称为一个 case,且被测试的变量会对每个switch case 进行检查。 

    3.  while循环

#include <stdio.h>

int main()

{

int i=1, sum=0;

while(i<=100)

{

        sum+=i;

        i++;

}

        printf("%d\n",sum);

        return 0;

}

    4.  for循环

#include <stdio.h>

int main()

{

int i=1, sum=0;

while(i<=100)

{

    sum+=i;

    i++;

 }

printf("%d\n",sum);

return 0;

}

    5.  do while循环

#include <stdio.h>

int main ()

{

    int a = 10;

    do{

                  printf("a 的值: %d\n", a);

                  a = a + 1;

            }while( a < 20 );

            return 0;

}

    6.  循环控制语句

break语句

终止循环或 switch 语句,程序流将继续执行紧接着循环或 switch 的下一条语句.

continue语句

告诉一个循环体立刻停止本次循环迭代,重新开始下次循环迭代。

goto语句

将控制转移到被标记的语句。但是不建议在程序中使用 goto 语句。