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语言安全能 ...
随机推荐
- Tomcat的JVM内存大小如何设置?【转】
[转]:专家答疑 Tomcat的JVM内存大小如何设置? 本文和大家重点讨论一下如何设置Tomcat的JVM内存大小,JAVA程序启动时JVM都会分配一个初始内存和最大内存给这个应用程序.这个初始内存 ...
- Java调用ICTCLAS2015
最近老板让做分词,指定使用ICTCLAS,于是到官网下载了2015,鼓捣了一晚上也没弄出来,百度了一上午还是一头雾水,,幸运的是现在已经弄好了,趁着没忘赶紧写下来. 1.首先解压并找到:2015080 ...
- java 设计模式初探之适配器模式
1. 概述 将一个类的接口转换成客户希望的另外一个接口.Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以在一起工作. 2. 解决的问题 即Adapter模式使得原本由于接口不兼容而不 ...
- 软件开发常用Linux命令
解压缩 tar -zxvf xxx.tar.gz 文件显示及查找常用于分析log //显示file中包含aaa的行 cat <file>|grep aaa 查看cpu memory基本信息 ...
- realloc,c语言
realloc #include <stdlib.h> main() { char* ptr=NULL; char* ptr2=NULL; ptr = malloc(); printf(& ...
- N 组连续子串最大和
数组 a 中有 M 个数 , 将 M 个数分成 N 组 , 并且每组中的数据顺序和原数组中的顺序保持一致,求 N 组中的数据之和最大为多少? 向 dp 数组中赋初始值 ,如果 M == N ,则 dp ...
- 容易被误解的overflow:hidden
http://www.ofcss.com/2011/03/20/misunderstood-of-overflow-hidden.html(转) 容易被误解的overflow:hidden 15条评论 ...
- Android 应用接入广点通统计API 方案
官方给你参考文档,很扯淡,是c++和python脚本: 安卓java代码接入如下: package com.edaixi.util; import java.io.UnsupportedEncodin ...
- 一周学会Mootools 1.4中文教程:(6)动画
先看一下动画的参数设置: 参数: fps - (number:默认是50) 每秒的帧数. unit - (string:默认是 false) 单位,可为 'px','em',或 '%'. link - ...
- [LeetCode]题解(python):142-Linked List Cycle II
题目来源: https://leetcode.com/problems/linked-list-cycle-ii/ 题意分析: 给定一个链表,如果链表有环,返回环的起始位置,否则返回NULL.要求常量 ...