目录:
一、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编码两部分. 服 ...
-
Go语言安全编码规范-翻译(分享转发)
Go语言安全编码规范-翻译 本文翻译原文由:blood_zer0.Lingfighting完成 如果翻译的有问题:联系我(Lzero2012).匆忙翻译肯定会有很多错误,欢迎大家一起讨论Go语言安全能 ...
-
推荐的PHP编码规范
推荐的PHP编码规范 发布时间: 2014-05-7 浏览次数:2754 分类: PHP教程 推荐的PHP编码规范 一 编辑器设置 1. 使用Tab缩进,不要使用空格 鉴于很多编辑器在保存文件时会自动 ...
随机推荐
-
再次完善了 WASPCN for Matlab
前段时间有多个网友询问在64位Matlab中如何使用WASPCN(水和蒸汽性质计算软件)的方法,一直没能给出解决方案. 最近自己有个项目也需要在64位Matlab中如何使用WASPCN(水和蒸汽性质计 ...
-
Problem A	CodeForces 560A
Description A magic island Geraldion, where Gerald lives, has its own currency system. It uses bankn ...
-
Ecshop与Jquery冲突的完美解决方案
ecshop把AJAX事件和JSON解析的模块放在common/transport.js之中,可以说它也有自己封装的一套工具,这其实是很正常的. 但恰恰的,在封装JSON各种方法的同时对objec ...
-
适合小白/外行的git与github最基础最浅显教程
首先声明,这是适合小白/外行/初学者/学生看的最基础最简单的git与github教程,已经能使用svn,git等工具的朋友请不要看这篇文章来浪费时间了. 想进一步学习git的,推荐去廖雪峰博客学习. ...
-
如何在linux下录制terminal操作?
相关包: ttyrec: ttyrec is a tty recorder. Recorded data can be played back with the included ttyplay co ...
-
Django 多数据库支持
很多时候,需要去其他数据库查询数据,都将会面临多数据库支持问题. 1.在settings文件内添加多数据库连接 DATABASES = { 'default': { 'ENGINE': 'django ...
-
04-树6 Complete Binary Search Tree(30 分)
title: 04-树6 Complete Binary Search Tree(30 分) date: 2017-11-12 14:20:46 tags: - 完全二叉树 - 二叉搜索树 categ ...
-
POJ2074 Line of Sight
嘟嘟嘟 题意:用一条水平线段表示以栋房子:\((x_0, y_0)(x_0', y_0)\).然后有一条低于房子的水平线段\(l_0\),代表你可以到的位置.接下来输入一个数\(n\),一下\(n\) ...
-
ilmerge工具合并多个DLL或EXE
这是一个微软提供的合并多个DLL 或是将DLL合并进EXE的工具 首先下载这个工具:ilmerge http://www.microsoft.com/en-us/download/details.as ...
-
WebService数据示例
通过webservice提交xml数据以及soap协议的使用 上次已经给大家分享了简单的webservice的使用,提交给服务器的数据只是简单类型的数据,这次呢换成了xml,并通过一个小例子来讲解so ...