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

时间:2022-12-23 22:56:29

目录:

一、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语言编码规范&lpar;Java Code Conventions&rpar;

    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语言编码规范&lpar;中文版&rpar;(http&colon;&sol;&sol;doc&period;javanb&period;com&sol;code-conventions-for-the-java-programming-language-zh&sol;index&period;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&sol;CSS&sol;JS编码规范

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

  7. ASP编码规范

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

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

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

  9. 推荐的PHP编码规范

    推荐的PHP编码规范 发布时间: 2014-05-7 浏览次数:2754 分类: PHP教程 推荐的PHP编码规范 一 编辑器设置 1. 使用Tab缩进,不要使用空格 鉴于很多编辑器在保存文件时会自动 ...

随机推荐

  1. 再次完善了 WASPCN for Matlab

    前段时间有多个网友询问在64位Matlab中如何使用WASPCN(水和蒸汽性质计算软件)的方法,一直没能给出解决方案. 最近自己有个项目也需要在64位Matlab中如何使用WASPCN(水和蒸汽性质计 ...

  2. Problem A&Tab;CodeForces 560A

    Description A magic island Geraldion, where Gerald lives, has its own currency system. It uses bankn ...

  3. Ecshop与Jquery冲突的完美解决方案

    ecshop把AJAX事件和JSON解析的模块放在common/transport.js之中,可以说它也有自己封装的一套工具,这其实是很正常的.   但恰恰的,在封装JSON各种方法的同时对objec ...

  4. 适合小白&sol;外行的git与github最基础最浅显教程

    首先声明,这是适合小白/外行/初学者/学生看的最基础最简单的git与github教程,已经能使用svn,git等工具的朋友请不要看这篇文章来浪费时间了. 想进一步学习git的,推荐去廖雪峰博客学习. ...

  5. 如何在linux下录制terminal操作?

    相关包: ttyrec: ttyrec is a tty recorder. Recorded data can be played back with the included ttyplay co ...

  6. Django 多数据库支持

    很多时候,需要去其他数据库查询数据,都将会面临多数据库支持问题. 1.在settings文件内添加多数据库连接 DATABASES = { 'default': { 'ENGINE': 'django ...

  7. 04-树6 Complete Binary Search Tree(30 分)

    title: 04-树6 Complete Binary Search Tree(30 分) date: 2017-11-12 14:20:46 tags: - 完全二叉树 - 二叉搜索树 categ ...

  8. POJ2074 Line of Sight

    嘟嘟嘟 题意:用一条水平线段表示以栋房子:\((x_0, y_0)(x_0', y_0)\).然后有一条低于房子的水平线段\(l_0\),代表你可以到的位置.接下来输入一个数\(n\),一下\(n\) ...

  9. ilmerge工具合并多个DLL或EXE

    这是一个微软提供的合并多个DLL 或是将DLL合并进EXE的工具 首先下载这个工具:ilmerge http://www.microsoft.com/en-us/download/details.as ...

  10. WebService数据示例

    通过webservice提交xml数据以及soap协议的使用 上次已经给大家分享了简单的webservice的使用,提交给服务器的数据只是简单类型的数据,这次呢换成了xml,并通过一个小例子来讲解so ...