zoukankan      html  css  js  c++  java
  • C语言02

    一. 函数的分类

    C语言中的函数就是面向对象中的“方法”。

    C语言的函数可以大概分为3类:主函数(一定要有),自定义函数(可有可无),C语言提供的库函数(eg:stdio.h中的输出printf()输入函数scanf())。

    二. 函数的声明和定义

    1. 在java中,每个方法的定义顺序没有限制;而在C语言中会报错,必须前面定义过来,后面才能调用,如果要是先使用函数,必须先做个函数声明,并不用实现,并且可以省略参数名称。

    2. 在大型的C程序中,为了分模块进行开发,一般会将函数的声明和定义实现分别放在2个文件中,函数声明在.h头文件中,函数定义放在.c源文件中。然后在main.c中包含sum.h即可使用sum函数

    3. 为什么在main.c中包含sum.c?

    原因:编译器会编译所有的.c源文件,这里包括main.c、sum.c,编译成功后生成sum.obj、main.obj文件,当链接这两个文件时链接器会发现sum.obj和main.obj里面都有sum函数的定义,于是报"标识符重复"的错误。

     

    三. 函数的形参和实参

    如果是基本数据类型,是不会影响实参的。函数调用的时候,纯粹是把实参的值传递给形参,实参和形参是两个不同的变量,互不影响。

    四. 输入输出函数

    是stdio.h中声明的函数,因此使用前必须加入#include <stdio.h>,使用它可以向标准输出设备(比如屏幕)输出数据。调用scanf函数时,需要传入变量的地址作为参数,scanf函数会等待标准输入设备(比如键盘)输入数据,并且将输入的数据赋值给地址对应的变量

    使用%d,说明对应的格式符参数必须是整型。

    五. 基本数据类型

    C语言有丰富的数据类型,因此会很适合用来编写数据库,DB2,Oracle都是C语言写的。

    C语言包括基本数据类型(整型,浮点型,字符型)和指针类型(void*)和构造类型(数组,结构体struct,共用体union,枚举enum),空类型(void)。

    任何变量都要先定义类型再使用。因为变量的类型决定了变量占有的储存空间,所以定义变量类型,就是为了给该变量分配适当的存储空间。

    局部变量的使用和java稍微有点不一样

    1> 在Java中,你声明了一个局部变量后,如果没有经过初始化赋值就使用该变量,编译器直接报错

    2> 在C语言中,你声明看一个局部变量后,没有经过初始化赋值是可以使用的,但是不安全

    * 如果是int类型变量是全局的,系统会默认赋值为0

    char的取值范围是:ASCII码字符,或者-128~127的整数,且只能存储一个字符,不能储存汉字,因为汉字占了两个字符。

    // 方式1
    char c = 'A';
    
    // 方式2
    char c = 65;

    六. 类型修饰符

    有以下4种类型修饰符(限定符):

    • short  短型
    • long  长型
    • signed  有符号型
    • unsigned  无符号型
    
    

    1> short和long可以提供不同长度的整型数,也就是可以改变整型数的取值范围,比如short的取值范围是-32768~32767,long的取值范围就是-2147483648~2147483647

    
    

    2> 当然,数据的存储长度也会跟着变化。比如,在64位编译器环境下,short占2个字节(16位),int占4个字节(32位),long占8个字节(64位)。世界上的编译器林林总总,不同编译器环境下,取值范围和占用的长度是不一样的,不过幸运的是,ANSI ISO制定了以下规则:

    
    

    * short跟int至少为16位(2字节)

    
    

    * long至少为32位(4字节)

    
    

    * short的长度不能大于int,int的长度不能大于long

    
    

    * char一定为为8位(1字节),毕竟char是我们编程能用的最小数据类型

    
    

    1> signed代表有符号,包括正数、负数和0;unsigned代表无符号,只包括正数和0。比如,signed的取值范围是-32768~32767,那么unsigned的取值范围是0~65535,当然,不同的编译器有不同的取值范围

    
    

    2> 其实,signed和unsigned的区别就是它们的最高位是否要当做符号位,并不会像short和long那样改变数据的长度,即所占的字节数,

    七. 基本语句和运算

    • 循环语句(do while、while、for)
    • 条件语句(if 、if-else、switch)
    • goto语句

    1. 算数运算符

    • +  加法运算符
    • -  减法运算符,或负值运算符
    • *  乘法运算符
    • /  除法运算符
    • %  模运算符,或称取余运算符,要求%两侧均为整型

    2. 关系运算符

    • <   小于运算符
    • <=  小于等于运算符
    • >   大于运算符
    • >=  大于等于运算符
    • ==  等于运算符
    • !=  不等于运算符

    * 关系运算的结果成立就为"真"(比如5>=4),不成立则为"假"(比如5<4)

    * 在Java中,关系运算的结果为"真"就返回true,"假"则返回false,用boolean类型的变量来接收

    boolean b1 = 5 > 4; // true
    
    boolean b2 = 5 < 4; // false

    C语言中没有boolean类型

    * 在C语言中,关系运算的结果为"真"就返回1,"假"就返回0

    3. 逻辑运算符

    • &&  逻辑与运算符
    • ||  逻辑或运算符
    • !   逻辑非运算符

    逻辑运算的结果也只有两个:成立就为"真",返回1;不成立就为"假",返回0

    整个逗号表达式的值是最后一个表达式的值,且必须要用()包住。

    4. * sizeof可以用来计算一个变量或者一个常量、一种数据类型所占的内存字节数。

    int size = sizeof(10);
    printf("10所占的字节数:%d", size);

    输出结果:10是int类型的数据,在64bit编译器环境下,int类型需要占用4个字节

    * sizeof一共有3种形式

    • sizeof( 变量常量 )
    sizeof(10);
    
    char c = 'a';
    sizeof(c); 
    • sizeof  变量常量
    sizeof 10;
    
    char c = 'a';
    sizeof c;
    • sizeof( 数据类型 )
    sizeof(float);

    注意,不可以写成sizeof float;

  • 相关阅读:
    [py]戏说python面向对象细节
    [py]彻底细究web框架的wsgi+逻辑处理模块
    [py]access日志入mysql-通过flask前端展示
    [sql]mysql管理手头手册,多对多sql逻辑
    [py]requests+json模块处理api数据,flask前台展示
    [py]flask从0到1-模板/增删改查
    [wx]雪落香杉树人物关系图
    [py]资源搜集
    [py]python之信用卡ATM
    【Unity技巧】开发技巧(技巧篇)
  • 原文地址:https://www.cnblogs.com/gzoof/p/7646458.html
Copyright © 2011-2022 走看看