zoukankan      html  css  js  c++  java
  • C语言学习

    一、概述

    1.C语言特定

    (1)C语言简洁、紧凑,使用方便

    一共有32个关键字。

    9种控制语句,主要用小写字母。

    (2)运算符丰富

    共有34种。

    (3)数据结构类型丰富

    (4)具有结构化的控制语句

    (5)语法限制不严格,程序设计自由度大

    (6)允许直接访问物理地址,能进行位操作

    (7)生成目标代码质量高,程序执行效率高

    (8)与汇编语言相比,程序移植性好

    2.C程序的结构

    C程序主要由头文件、主函数、系统的库函数和定义函数组成。其中main主函数是每个C语言都必须包含的部分。一个程序的开始是从main开始到main函数结束。

    C程序的结构特点

    1. C程序是由函数构成的,函数是C程序的基本单位。至少包含main主函数。

    2. 一个函数有两部分组成:函数头和函数体。

    3. 一个C程序总是从main函数开始执行的。

    4. 语句和数据定义必须以;结尾。

    5. 要有注释,方式跟java一样。

    #include<stdio.h>
    int main(){
       printf("helloworld");
       return 0;
    }

    3.C语言的算法

    1. 确定性。无二义性,目的明确。

    2. 有穷性。不能无限执行,一定有个终止。

    3. 输入。0或者多个输入。

    4. 输出。

    5. 有效性。原则上能让人在纸上运算。

    4.算法的表示方式

    1. 用自然语言

    2. 用流程图(如图)

      image-20210415115312890

    3. 用N-S流程图表示

    4. 用伪代码表示

    5.C程序的三种基本结构

    顺序结构、选择结构、循环结构

    image-20210415115733249

    6.结构化程序设计方法

    1. 自顶向下

    2. 逐步细化

    3. 模块化设计

    4. 结构化编码

     

    二、数据类型及其运算

    1.基本字符和标识符

    • 基本字符

    英文字母

    数字

    空白符

    标点和特殊字符

    字符常量

    • 标识符:用来标明变量名、函数名、数组名、结构体名、共用体名、文件名、必须由有效字符构成。

    • 标识符的构成规则:

    1.标识符只能由字母、下划线和数字三种字符构成,且不能用数字开头。

    2.字母区分大小写。

    3.不能是C语言的关键字。

    image-20210415204913265

    2.常量与变量

    • 常量

    1. 字面常量:字母数字。

    2. 符号常量:π

    • 变量:程序运行过程中值可以改变的量。

      1. 变量名,即标识符

      2. 存储空间,在内存中占用的一定的存储单元,空间大小是由变量的类型决定的。

      3. 变量值,即存储空间中存放的变量的值。

        对于变量,C语言规定一定要“先定义,后使用”

        [存储类型] 数据类型  变量1,变量2,.....变量n;

    3.数据类型

    image-20210415205614554

    (1)整形数据

    整形常量,即整常数。十进制、八进制、十六 进制。

    • 十进制

    • 八进制,以数据0开头。

    • 十六进制,以0x开头。

    整形变量

    按照存储空间不同,分为三种:

    • 基本型:int,2个字节(16位),最高位是符号位

    • 短整型:short 2个字节

    • 长整型:long 4个字节(32位)

    • 无符号的整型变量

      • 无符号基本型:unsigned int

      • 无符号短整型

      • 无符号长整型

    (2)实型数据
    • 实型常量,即实数或者浮点数。

    • 实型变量

      • 单精度型:float,4个字节

      • 双精度型:double,8个字节

      • 长双精度型:long double 16个字节

    (3)字符型数据

    字符型常量

    • 字符常量:必须用单引号括起来,单引号中只能为单个字符。例如:‘A’

    • 字符串常量:双引号括起来的,长度为n的字符串,在计算机中用了n+1个字节,因为最后一个字节存的是‘’,作为字符串结束的标志。

    ‘A’和“A”是完全不同的概念,一个是占用了一个字节,一个是占用了两个,注意。

    • 转义字符:以“”开头的字符。转义字符通常表示一些控制代码和功能定义。如: 表示回车换行等。

    字符型变量

    字符变量在内存中占一个字节,器定义形式和整形、实型变量一样,只是数据类型标识符变成了char。

    讲一个字符赋值给一个字符变量,不是吧这个字符本身放到内存中,而是将其所对应的ASCII码值放到内存中。

    4.数据类型转换

    隐式类型转换,由编译系统自动进行,不需认为干预。

    • 如参与原酸的变量类型不同,则先转换成同一类型,然后进行运算。

    • “低级向高级转换”原则。

      char,short-int-unsigned-long-double
      float-double

      double是最高级的,其他类型的跟double加完都是double型。

    • 赋值运算两边的数据类型不同时,复制好右边量的类型将转换为左边量的类型。

    a+b是double型,d为整形
    int d
    d=a+b
    权重高于上一条。

    显示类型转换,即强制类型转换,跟java一样。

    三、选择结构及其应用

    1. 关系运算符和关系表达式

      1. 关系运算符是对两个操作量进行大小比较的运算符,其操作的结果是真或者是假。1表示真,0表示假。

        • (<、<=、>>=)的优先级是一样的(=、!=)优先级是一样的,前4种优先级高于后两种。

        • 关系运算符的结合性是从左到右的

      2. 关系表达式:是用关系运算符吧操作对象连接起来而构成的式子,错做对象可以是各种表达式。关系表达式原酸结果值为1或0.

        如: (6>5)<2
        结果是:1

         

    四、循环结构及其应用

    五、数组

    注意:字符数组和字符串数组不同

    char a[]="abcde";
    这个数组的长度是6,因为这个是字符串,后面默认有一位
    char a[6]={"abcde"}

     

    六、函数

    七、预处理命令

    C语言预处理命令,都是以#号打头,末尾不加分号,以区别C语句、C声明和定义。

    C提供的预处理功能主要由以下三种:

    • 宏定义

    • 文件包含

    • 条件编译

    1. 宏定义

      在C语言源程序中,允许用一个标识符来表示一个字符串,成为“宏”。在C语言中,“宏”分为有参宏和无参宏两种。

      1. 不带参数的宏定义的一般形式为:

        #define 标识符 字符串
        #define PI   3.1415926
      2. 带参数的宏定义

        #define 宏名(参数表)字符串
        #define S(a,b) a*b
        调用时:
        areal = S(m,n)
        等价于m*n
      3. 撤销宏定义命令

        宏定义命令#define应该写在函数外面,通常写在一个文件之首,这样这个宏定义在整个文件范围内都是有效的。但是,也可以用命令#undef撤销已经定义的宏,终止该宏定义的作用域。

    2. 文件包含命令

      文件包含是指一个源文件可以将另一个源文件的全部内容包含进来,是以“#include”开头的预处理命令。类似于java的import。

      #include "文件名"
      or #include <文件名>
    3. 条件编译命令

      一般情况下,所有的源文件都是要参与编译的。但是有时希望一部分源文件在指定情况下才进行编译,这就是条件编译。

      第一种方式:
      #ifdef 标识符
      	程序段1
      #else
      	程序段2
      #endif
      
      第二种方式:
      #ifndef 标识符
      	程序段1
      #else
      	程序段2
      #endif
      
      第三种方式:
      #if 标识符
      	程序段1
      #else
      	程序段2
      #endif

       

    八、指针

    java中,调用参数是穿参,本质上都是在传值,把主函数复制一份,传递给子函数。但是C语言中,可以通过指针,实现传址,把要处理的对象传给其他函数,主函数的值也会跟着改变。

    定义:

    类型说明符 *变量名1,*变量名2;
    int *p;
    char *q;

     

    九、结构体与共用体

    1. 结构体(structure)是不同数据类型的数据所组成的几何体,是构造类型数据。

      每一个结构体有一个名字,成为结构体名。一个结构体由若干成员组成,每个成员有自己的名字,为结构体成员名。每个成员的数据类型可以不同。

      结构体类似于java中的类。

      1. 声明一个结构体类型的一般形式为:

        struct 结构体名
        {
        	数据类型 成员1名称;
        	数据类型 成员2名称;
        	。。。
        };
      2. 结构体变量定义

        • 先声明结构体的类型,在定义变量,如struct student S1;

        • 在声明结构体类型的同时定义结构体变量。

          struct 结构体名
          {
          
          }结构体变量名表;
        • 直接定义结构体变量,不出现结构体名

          struct 
          {
          
          }结构体变量名表;
      3. 结构体变量的初始值

        结构体变量初始化格式:

        struct 结构体名 结构体变量名={初始数据};
      4. 结构体变量引用

        结构体变量名.成员名

        如:S1.sSex

        这个跟Java一样。

      5. 结构体指针变量

        typedef struct student
        {
        	int id;
        	char sex;
        	int sEng;
        }STU;
        
        STU *p;
        p=&S1;
  • 相关阅读:
    MVC中的helper标签
    自适应网页设计(Responsive Web Design)
    网站设计的最简主义
    Windows Forms数据绑定技术
    [C#]写自己的类库
    C#数据库连接字符串
    CSS float属性
    CSS之UL
    NET教程:MVC4使用Bundling,CSS中图片路径问题
    ASP.net 中Get和Post的用法
  • 原文地址:https://www.cnblogs.com/pandaNHF/p/14690404.html
Copyright © 2011-2022 走看看