zoukankan      html  css  js  c++  java
  • 03-C语言编码规范和变量

    目录:

    一、C语言的编码规范

    二、变量

    三、浮点型float

    四、变量名命名规则

    五、变量作用域与生命周期

    回到顶部

    一、C语言的编程规范

    1 语句可以分开放在任意位置

    2 空格可以让代码更清晰

    3 缩进可以让代码更直观

    4 空行可以更好划分逻辑

    5 命名使用驼峰标识getName或下划线get_name

    回到顶部

    二、变量

    1 概述:大多数程序会进行大量计算,在计算过程中需要临时保存数据,存储数据的方法没,称之为变量。

    2 数据类型,对应内存区域,其值可变,变量有相应的类型和值。

    3 变量类型分字符型char、整形int、浮点型float/double、指针、结构、联合等。

    4 每次使用前要声明其类型,且声明一次。

    int number1;//声明变量,并开辟int类型的内存空间

    number1 = 10;//赋值,可以多次赋值,但只保存最后那个值

    5 声明一个变量,在使用之前,它是有可能有值,但是是变化的,应该给它初始化。

    6 声明变量格式:变量类型 变量名 = 初始值;

    7 输出变量值 %d int、%f float、%lf double、%c char

    练习:求两个数的差、积、商

    回到顶部

    三、浮点数据类型float

    1 float类型代表浮点数(小数)数值的表示方式

    2 输出函数输出内容的时候占位符为%f

    3 %.2f 只显示两位有效数字

    回到顶部

    四、变量名命名规则

    1 必须是标识符,函数,宏,实体名也必须使用标识符

    2 只能以字母或下划线开头

    3 包含字母,下划线或数字

    4 大小写敏感

    5 不能以关键字冲突

    6 标识符理论上,长度无限制,但会被编译器截断

    7 标识符最好见名之意

    回到顶部

    五、变量作用域与生命周期

     1 变量作用域,表示一个变量在代码范围内是可以使用的。通常使用{}符号来表示代码范围。

     在上一级代码中定义的变量,可以在下一级代码块中使用。下一级代码块中定义的变量,不可以在上一级代码块中使用。

     下一级代码块中,如果声明了和上一级名称类型一样的变量,会遵循就近原则。

     局部变量:定义在函数中的变量叫局部变量。

     全局变量:定义在函数外的变量叫全局变量。

     全局变量可以供多个函数使用,而局部变量只可以供当前函数使用。

     当全局变量与局部变量重名,依然遵循就近原则。

     参数也有作用域,是函数的内部。

     2 变量生命周期

     当变量存时,就会开辟一块内存空间。

     当变量补存在是,就会消除相应的内存空间。

     当修饰局部变量的时候加auto(默认),声明变量时,会创建内存空间,当变量超出作用域,就会消除相应的内存空间。

    当修饰局部变量的时候加上static,静态局部变量,此时变量的生命周期就会变长,直到程序结束为止。

    虽然静态变量的生命周期变长,但作用域依然在函数内部。

    auto不可以修饰全局变量,static可以修饰全局变量,加上static只能在本文件中使用,不加在多个文件中都可以使用。

     1 #include <stdio.h>
     2 int i = 10;
     3 void func(){
     4     int i = 10;//auto 自动变量
     5     static int j = 20;//静态变量,生命周期到程序的结束
     6     i++;
     7     j++;
     8     printf("func i:%d
    ",i);
     9     printf("func j:%d
    ",j);
    10 }
    11 int main(int argc, const char * argv[])
    12 {
    13     func();//i=11 执行完后销毁了变量i的内存空间
    14     func();//i=11
    15 //    int i = 15;
    16 //    {
    17 //        //int i = 11;
    18 //        printf("block i:%d
    ",i);
    19 //    }
    20 //    printf("i2:%d
    ",i);
    21     return 0;
    22 }

     小结:

    作用域:使用代码的范围

    生命周期:变量在内存中是否存在

    作业:

    1 输出个人信息:姓名 年龄 性别 期望薪资 税资*13%

    #include <stdio.h>
    
    int main()
    {
        char name[] = {"ymx"};
        int age = 22;
        char sex[] = {""};
        int xinzi = 6000;
        int shuizi = 6000 * 0.13;
        printf("我的名字是:%s,年龄是:%d,性别:%s,薪资:%d,税资:%d
    ",name,age,sex,xinzi,shuizi);
        return 0;
    }

    2 求圆的面积和周长?半径:3.0 π:3.14

    #include <stdio.h>
    
    int main()
    {
        float banjing = 3.0;
        float pi = 3.14;
        float mianji = pi * banjing * banjing;
        float zhouchang = 2 * pi * banjing;
        printf("圆面积是:%f,周长是:%f
    ",mianji,zhouchang);
        return 0;
    }

    3 求矩形的面积和周长?长:18 宽:15

    #include <stdio.h>
    
    int main()
    {
        int chang = 18;
        int kuan = 15;
        int mj = chang * kuan;
        int zc = 2 * (chang + kuan);
        printf("矩形的面积:%d,周长%d
    ",mj,zc);
        return 0;
    }

     4.练习:使用程序来模拟放球、取球的问题。

    提示:栈,先进后出,后进先出

    有网兜存球 -> 数组

    放球操作 -> 函数

    取球操作 -> 函数

    标识 -> 索引

    兜满不能放 -> 函数

    兜空不能取 -> 函数

    得到的是什么球 -> 返回值

    测试:123(4满)321(0空)

     1 #include <stdio.h>
     2 
     3 //stack网兜 i索引 show显示 isFull isEmpty push放 pop取
     4 //ball球 getBall获取球
     5 //保存球 网兜
     6 
     7 int stack[3] = {0};//保存球到数组中
     8 int i = 0;//索引
     9 //判断是否放满
    10 int isFull(){
    11     if (i == 3) {
    12         return 1;//放满了
    13     }else{
    14         return 0;//还可以放
    15     }
    16 }
    17 //放球
    18 void push(int ball){
    19     if (!isFull()) {
    20         stack[i] = ball;
    21         i++;
    22         printf("%d号球放好了!
    ",i);
    23     }else{
    24         printf("已经放满了!
    ");
    25     }
    26 }
    27 //判断是否取完
    28 int isEmpty(){
    29     if (i == 0) {
    30         return 1;//取完了
    31     }else{
    32         return 0;//还没取完
    33     }
    34 }
    35 //取球
    36 void pop(){
    37     int getBall = 0;
    38     if (!isEmpty()) {
    39         i--;
    40         getBall = stack[i];
    41         stack[i] = 0;
    42         printf("取球成功!取出%d号球
    ",getBall);
    43     }else{
    44         printf("已经取完了
    ");
    45     }
    46 }
    47 //显示网兜状态
    48 void show(){
    49     printf("查看网兜存放状态
    ");
    50     for (int i = 0; i < 3; i++) {
    51         printf("stack[%d]:%d
    ",i,stack[i]);
    52     }
    53 }
    54 int main()
    55 {
    56     push(1);//放入一号球
    57     push(2);//放入二号球
    58     push(3);//放入三号球
    59     push(4);//放入四号球(只能放3个放不进去了)
    60     show();//查看网兜状态
    61     printf("i:%d
    ",i);
    62     pop();//取出3号球
    63     show();
    64     pop();//取出2号球
    65     show();
    66     pop();//取出1号球
    67     show();
    68     pop();//取不出来了
    69     return 0;
    70 }
  • 相关阅读:
    1.MySql安装
    struts文件上传、文件下载
    Java内存模型
    虚拟机类加载机制
    JAVA内存管理
    算法
    POI
    SSH项目(1)
    classpath路径和properties
    AngularJS路由实现单页面跳转
  • 原文地址:https://www.cnblogs.com/yangmx/p/3458579.html
Copyright © 2011-2022 走看看