您的位置:首页 > 编程语言 > C语言/C++

03-C语言编码规范和变量

2013-12-04 23:08 211 查看
目录:

一、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只能在本文件中使用,不加在多个文件中都可以使用。

#include <stdio.h>
int i = 10;
void func(){
int i = 10;//auto 自动变量
static int j = 20;//静态变量,生命周期到程序的结束
i++;
j++;
printf("func i:%d\n",i);
printf("func j:%d\n",j);
}
int main(int argc, const char * argv[])
{
func();//i=11 执行完后销毁了变量i的内存空间
func();//i=11
//    int i = 15;
//    {
//        //int i = 11;
//        printf("block i:%d\n",i);
//    }
//    printf("i2:%d\n",i);
return 0;
}


小结:

作用域:使用代码的范围

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

作业:

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空)

#include <stdio.h>

//stack网兜 i索引 show显示 isFull isEmpty push放 pop取
//ball球 getBall获取球
//保存球 网兜

int stack[3] = {0};//保存球到数组中
int i = 0;//索引
//判断是否放满
int isFull(){
if (i == 3) {
return 1;//放满了
}else{
return 0;//还可以放
}
}
//放球
void push(int ball){
if (!isFull()) {
stack[i] = ball;
i++;
printf("%d号球放好了!\n",i);
}else{
printf("已经放满了!\n");
}
}
//判断是否取完
int isEmpty(){
if (i == 0) {
return 1;//取完了
}else{
return 0;//还没取完
}
}
//取球
void pop(){
int getBall = 0;
if (!isEmpty()) {
i--;
getBall = stack[i];
stack[i] = 0;
printf("取球成功!取出%d号球\n",getBall);
}else{
printf("已经取完了\n");
}
}
//显示网兜状态
void show(){
printf("查看网兜存放状态\n");
for (int i = 0; i < 3; i++) {
printf("stack[%d]:%d\n",i,stack[i]);
}
}
int main()
{
push(1);//放入一号球
push(2);//放入二号球
push(3);//放入三号球
push(4);//放入四号球(只能放3个放不进去了)
show();//查看网兜状态
printf("i:%d\n",i);
pop();//取出3号球
show();
pop();//取出2号球
show();
pop();//取出1号球
show();
pop();//取不出来了
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: