03-C语言编码规范和变量
目录:
一、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语言编码规范和变量的更多相关文章
- Java语言编码规范(Java Code Conventions)
Java语言编码规范(Java Code Conventions) 名称 Java语言编码规范(Java Code Conventions) 译者 晨光(Morning) 简介 本文档讲述了Java语 ...
- Uber Go 语言编码规范
Uber Go 语言编码规范 Uber 是一家美国硅谷的科技公司,也是 Go 语言的早期 adopter.其开源了很多 golang 项目,诸如被 Gopher 圈熟知的 zap.jaeger 等.2 ...
- 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 包和引入语句 ...
- 嵌入式c语言编码规范
学习嵌入式的同学应该首先掌握嵌入式编码规范,这样才能更好的嵌入式系统. 下面就从这几个方面讲解一下嵌入式c编码规范. 注释风格.排版风格.头文件风格.变量定义.宏定义.函数 1 注释风格 1.1 注 ...
- 《从零开始学Swift》学习笔记(Day 58)—— Swift编码规范之变量或常量声明规范
原创文章,欢迎转载.转载请注明:关东升的博客 声明是在声明变量.常量.属性.方法或函数和自定义类型时候需要遵守的规范. 首先变量或常量时每行声明变量或常量的数量推荐一行一个,因为这样以利于写注释.示例 ...
- HTML/CSS/JS编码规范
最近整理了一份HTML/CSS/JS编码规范,供大家参考.目录:一.HTML编码规范二.CSS编码规范三.JS编码规范 一.HTML编码规范 1. img标签要写alt属性 根据W3C标准,img标签 ...
- ASP编码规范
ASP编码规范(--::) 第一章 ASP编码规范通述 ASP编码分为两大部分,一部分为静态文件编码,一部分为包含服务器端脚本的动态文件编码. 静态文件编码分script编码和HTML编码两部分. 服 ...
- C++编码规范(本人自定义)
C++编码规范 1.变量名用camelCase命名法(即lowerCamelCase,小驼峰拼写法)命名. 即小写字母开头,如果变量名是复合词,第二个单词的首字母大写. 举例: int digitsC ...
- Go语言安全编码规范-翻译(分享转发)
Go语言安全编码规范-翻译 本文翻译原文由:blood_zer0.Lingfighting完成 如果翻译的有问题:联系我(Lzero2012).匆忙翻译肯定会有很多错误,欢迎大家一起讨论Go语言安全能 ...
随机推荐
- 发现一个名为“Douyu”的国人项目
刚刚在javaeye看到一个名为Douyu的国人项目,认为搞下去未来可能非常有意思,放到blog上做个标记. ——————下面是转载的作者原文——————— 原文地址例如以下:http://zhh20 ...
- c#高级语言编程(第一部分)
1.一步一步学c#(一):.NET体系结构 2.一步一步学c#(二):核心c# 3.一步一步学c#(三):对象和类型 4.一步一步学c#(四):继承 5.一步一步学c#(五):泛型 6.一步一步学c# ...
- web前端学习之路
test 随着自己对于web前端知识了解的越多,越来越发现自己真的好菜 一脸茫然阶段 两年前大学接触网页设计,那时对于网页设计一窍不通,只是看了一本自己大学编的一本入门教材,我甚至不知道那些网页设计的 ...
- HTML5新增加的功能
1.部分代码代替了以前的代码 例如: 获取焦点 旧:document.getElementById("price");.focus; 新:<input ...
- Page.ClientScript.RegisterStartupScript 与 Page.ClientScript.RegisterClientScriptBlock 之间的区别
Page.ClientScript.RegisterClientScriptBlock 在页面紧跟<form>之后,整个页面未完全加载完成. Page.ClientScript.Regis ...
- 5分种让你了解javascript异步编程的前世今生,从onclick到await/async
javascript与异步编程 为了避免资源管理等复杂性的问题,javascript被设计为单线程的语言,即使有了html5 worker,也不能直接访问dom. javascript 设计之初是 ...
- javaWeb项目带红色感叹号问题原因
自建Userlibrary 中库中含有非.jar 文件.
- 理解ROS的参数
记住每次操作之前都要在一个单独的终端中运行ros的核心. roscore rosparam命令允许你在ROS的参数服务器上操作和存储数据,参数服务器可以存储整数,浮点数,布尔类型,字典,列表.ROS使 ...
- KNN算法[分类算法]
kNN(k-近邻)分类算法的实现 (1) 简介: (2)算法描述: (3) <?php /* *KNN K-近邻方法(分类算法的实现) */ /* *把.txt中的内容读到数组中保存,$file ...
- C语言复合梯形公式实现定积分
假设被积函数为 f x ,积分区间为 , a b ,把区间 , a b 等分成 n 个小区间, 各个区间的长度为 h ,即 / h b a n ,称之为“步长” ...