目录:

一、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 = ;
void func(){
int i = ;//auto 自动变量
static int j = ;//静态变量,生命周期到程序的结束
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 ;
}

小结:

作用域:使用代码的范围

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

作业:

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

#include <stdio.h>

int main()
{
char name[] = {"ymx"};
int age = ;
char sex[] = {"男"};
int xinzi = ;
int shuizi = * 0.13;
printf("我的名字是:%s,年龄是:%d,性别:%s,薪资:%d,税资:%d\n",name,age,sex,xinzi,shuizi);
return ;
}

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 = * pi * banjing;
printf("圆面积是:%f,周长是:%f\n",mianji,zhouchang);
return ;
}

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

#include <stdio.h>

int main()
{
int chang = ;
int kuan = ;
int mj = chang * kuan;
int zc = * (chang + kuan);
printf("矩形的面积:%d,周长%d\n",mj,zc);
return ;
}

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

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

有网兜存球 -> 数组

放球操作 -> 函数

取球操作 -> 函数

标识 -> 索引

兜满不能放 -> 函数

兜空不能取 -> 函数

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

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

 #include <stdio.h>

 //stack网兜 i索引 show显示 isFull isEmpty push放 pop取
//ball球 getBall获取球
//保存球 网兜 int stack[] = {};//保存球到数组中
int i = ;//索引
//判断是否放满
int isFull(){
if (i == ) {
return ;//放满了
}else{
return ;//还可以放
}
}
//放球
void push(int ball){
if (!isFull()) {
stack[i] = ball;
i++;
printf("%d号球放好了!\n",i);
}else{
printf("已经放满了!\n");
}
}
//判断是否取完
int isEmpty(){
if (i == ) {
return ;//取完了
}else{
return ;//还没取完
}
}
//取球
void pop(){
int getBall = ;
if (!isEmpty()) {
i--;
getBall = stack[i];
stack[i] = ;
printf("取球成功!取出%d号球\n",getBall);
}else{
printf("已经取完了\n");
}
}
//显示网兜状态
void show(){
printf("查看网兜存放状态\n");
for (int i = ; i < ; i++) {
printf("stack[%d]:%d\n",i,stack[i]);
}
}
int main()
{
push();//放入一号球
push();//放入二号球
push();//放入三号球
push();//放入四号球(只能放3个放不进去了)
show();//查看网兜状态
printf("i:%d\n",i);
pop();//取出3号球
show();
pop();//取出2号球
show();
pop();//取出1号球
show();
pop();//取不出来了
return ;
}

03-C语言编码规范和变量的更多相关文章

  1. Java语言编码规范(Java Code Conventions)

    Java语言编码规范(Java Code Conventions) 名称 Java语言编码规范(Java Code Conventions) 译者 晨光(Morning) 简介 本文档讲述了Java语 ...

  2. Uber Go 语言编码规范

    Uber Go 语言编码规范 Uber 是一家美国硅谷的科技公司,也是 Go 语言的早期 adopter.其开源了很多 golang 项目,诸如被 Gopher 圈熟知的 zap.jaeger 等.2 ...

  3. Java语言编码规范 - Java语言编码规范(中文版)(http://doc.javanb.com/code-conventions-for-the-java-programming-language-zh/index.html)

      目录 1 介绍 1.1 为什么要有编码规范 1.2 版权声明 2 文件名 2.1 文件后缀 2.2 常用文件名 3 文件组织 3.1 Java源文件 3.1.1 开头注释 3.1.2 包和引入语句 ...

  4. 嵌入式c语言编码规范

    学习嵌入式的同学应该首先掌握嵌入式编码规范,这样才能更好的嵌入式系统. 下面就从这几个方面讲解一下嵌入式c编码规范. 注释风格.排版风格.头文件风格.变量定义.宏定义.函数 1 注释风格 1.1  注 ...

  5. 《从零开始学Swift》学习笔记(Day 58)—— Swift编码规范之变量或常量声明规范

    原创文章,欢迎转载.转载请注明:关东升的博客 声明是在声明变量.常量.属性.方法或函数和自定义类型时候需要遵守的规范. 首先变量或常量时每行声明变量或常量的数量推荐一行一个,因为这样以利于写注释.示例 ...

  6. HTML/CSS/JS编码规范

    最近整理了一份HTML/CSS/JS编码规范,供大家参考.目录:一.HTML编码规范二.CSS编码规范三.JS编码规范 一.HTML编码规范 1. img标签要写alt属性 根据W3C标准,img标签 ...

  7. ASP编码规范

    ASP编码规范(--::) 第一章 ASP编码规范通述 ASP编码分为两大部分,一部分为静态文件编码,一部分为包含服务器端脚本的动态文件编码. 静态文件编码分script编码和HTML编码两部分. 服 ...

  8. C++编码规范(本人自定义)

    C++编码规范 1.变量名用camelCase命名法(即lowerCamelCase,小驼峰拼写法)命名. 即小写字母开头,如果变量名是复合词,第二个单词的首字母大写. 举例: int digitsC ...

  9. Go语言安全编码规范-翻译(分享转发)

    Go语言安全编码规范-翻译 本文翻译原文由:blood_zer0.Lingfighting完成 如果翻译的有问题:联系我(Lzero2012).匆忙翻译肯定会有很多错误,欢迎大家一起讨论Go语言安全能 ...

随机推荐

  1. asp.net软件测试学习

    ormaping类是,将数据操作封装起来的一种数据操作方法,在测试的时候,如果说,insert之后对obj对象赋值赋值,每个属性应该对应自己的objDataRow["REGISTERID&q ...

  2. Foundation 学习

    官网 Foundation是个跟bootstrap齐名的前端框架. 移动优先,响应式,最低支持IE8. html+css+jq构建 网格Grid Basic: .row父容器 子元素类.column  ...

  3. 页面加载时,页面中DIV随之滑动出来;去掉页面滚动条

    <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8&quo ...

  4. LitJson解析遇到的坑

    今天在些项目的时候,遇到一个坑,现在跟大家分享一下 我遇到的错误是MissingMethodException: Method not found: 'Default constructor not ...

  5. 正整数从1到N,输出按照字典序排序的前K个数

    #include <iostream> #include <cassert> using namespace std; ; char a[max_len]; void topK ...

  6. 【转载】谈谈Cookie

    0×00 引言 在Web技术的发展史上,Cookie技术的出现是一次重大的 变革.但是, Cookie技术又是一项非常有争议的技术,从它诞生之日起就成了广大网络用户和Web开发人员的一个争论焦点,原因 ...

  7. Struts2拦截器总结

    拦截器的本质: 拦截器就是一个类,一个实现了超级接口Interceptor的类.Interceptor接口里定义了三个方法 init(),destory(),intercept().其中inercep ...

  8. 批量修改文件名java

    package test0715; import java.io.File; public class FileRename {public static void main(String[] arg ...

  9. 共享内存(shared memory)

    共享内存指在多处理器的计算机系统中,可以被不同中央处理器(CPU)访问的大容量内存.由于多个CPU需要快速访问存储器,这样就要对存储器进行缓存(Cache). 任何一个缓存的数据被更新后,由于其他处理 ...

  10. MFC 动态创建控件

    动态控件是指在需要时由Create()创建的控件,这与预先在对话框中放置的控件是不同的.   一.创建动态控件:   为了对照,我们先来看一下静态控件的创建.   放置静态控件时必须先建立一个容器,一 ...