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\n",i);
 9     printf("func j:%d\n",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\n",i);
19 //    }
20 //    printf("i2:%d\n",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\n",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\n",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\n",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号球放好了!\n",i);
23     }else{
24         printf("已经放满了!\n");
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号球\n",getBall);
43     }else{
44         printf("已经取完了\n");
45     }
46 }
47 //显示网兜状态
48 void show(){
49     printf("查看网兜存放状态\n");
50     for (int i = 0; i < 3; i++) {
51         printf("stack[%d]:%d\n",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\n",i);
62     pop();//取出3号球
63     show();
64     pop();//取出2号球
65     show();
66     pop();//取出1号球
67     show();
68     pop();//取不出来了
69     return 0;
70 }

 

posted @ 2013-12-04 23:08  回读(IOS)  阅读(498)  评论(0编辑  收藏  举报