变量定义和赋值(下)

1.变量在函数中声明:

①变量往往是在一个时间范围内是有生命的,离开这个范围就会失去生命,释放内存。衡量这个时间范围的在程序中往往就是函数,如大家熟悉的 main 函数。所以变量往往声明在函数中,变量在这个函数中才具有生命,这种变量就称为局部变量。

②而且变量往往只能在函数的开头进行定义,或者说变量定义的前面不能有其它非声明或非定义的语句(遵循C89规范时)。

是不是必须写在最前面是由编译器遵循的规范决定,如果编译器遵循 C89,就必须按照这个规则,如 VC++6.0。如果编译器遵循 C99 规范,变量的申明就是在想用的时候声明即可,没有位置限制。

# include <stdio.h>

int main(void)

{

int i;//声明

i = 3;//赋值

int j = 4; //声明

return 0;

}

---------------------------------------------------------------------

int j = 4;在 C89 规范下运行就会报错,因为前面出现了非声明的语句。实际上遵循 C89 规范,让变量先定义,后使用是一种良好的编程习惯。

2.变量在使用前一定要初始化:

①定义变量的时候给变量进行赋值操作,这就称为初始化。如果不进行初始化就参与运算,这时系统使用的是内存中的垃圾值。

②在 VC++6.0 环境中,如果发现一个变量没有初始化,就认为其中存放的是一个垃圾值,这个数据是没有实际意义的,只是为了提醒用户没有进行初始化,如果是一个整型变量,系统就会将一个很小负数放进去。

③因此任何一个变量在使用之前必须要先对它进行初始化。在实际编程中,习惯上在定义变量的时候就对它进行初始化,这是一个很好的编程习惯。

---------------------------------------------------------------------

#include <stdio.h>

int main()

{

int i;//声明,没有初始化,系统指定一个垃圾值

printf("i = %d\n", i);//除站位符%d 外,其余字符原样输出

return 0;

}

这个程序中对变量 i 没有进行初始化,所以会输出一个想不到的系统垃圾值。

3.变量的本质:

①程序在运行过程中,操作系统就会将硬盘上的文件加载到内存中,然后通过 CPU 处理内存里面的数据。所以变量的本质就是内存存储单元。

②实际上,内存里面有很多“小格子”,每个“格子”中只能存放一个 0 或 1。一个“小格子”就是一位,所以“位”要么是 0,要么是 1。8 个“小格子”就是一字节,即一

字节等于 8 位。字节(Byte)是存储数据的基本单位,并且是硬件所能访问的最小单位,这就是一个内存地址。

常见的存储单位主要有 bit(位)、B(字节)、KB(千字节)、MB(兆字节)、GB(千兆字节)。它们之间主要有如下换算关系:

1B=8bit

1KB=1024B

1MB=1024KB

1GB=1024MB

---------------------------------------------------------------------

# include <stdio.h>

int main(void)

{

int i;//变量声明

i = 3;//变量赋值,输入

printf("i = %d\n", i);//除站位符%d 外,其余字符原样输出

return 0;

}

---------------------------------------------------------------------

当程序执行 int i;时,它会请求操作系统在内存中寻找一个空闲的存储单元,这个存储单元的大小由数据类型决定(假设 int 的大小为 4 个字节),然后把它

当作变量 i 来使用。也就是说这个存储单元的地址和 i 产生了一种关联。即变量 i 现在就是这个存储单元,然后 i=3;的结果是把 3 按照 32 位二进制位进行

编码,存放到变量 i 所关联的那个 4 个字节的存储单元中。以后只要使用 i,操作系统就会自动找到那个与它关联的存储单元。

③内存数据是可擦除的,当断电后,这些数据就会丢失。

4.变量命名规则 :

如果违背了变量的命名规则,编译时程序就会报错。变量命名要注意以下几个命名规则:

①变量名的开头必须是字母或下划线,不能是数字。

实际编程中最常用的是以字母开头,而以下划线开头的变量名是系统专用的。所以为了避免与系统定义的名字产生冲突,在编程的时候,

永远都不要使用下划线作为一个变量名的开头。

②变量名中的字母是区分大小写的。

③ 变量名绝对不可以是 C 语言关键字,这一点一定要记住!

关键字,就是系统已经使用了的符号,被 C 语言规范赋予特定含义的单词,这些符合都有特殊的作用。

在 C 语言 C89 规范中,只有 32 个关键字,全部都是小写。

int float double char short long signed unsigned if else switch case default

for while do break continue return void const sizeof struct typedef

static extern auto register enum goto union volatile

④变量名中不能有空格。

5.变量命名规范 :

原文地址:https://www.cnblogs.com/10543-yyy/p/12635656.html

时间: 2024-08-10 09:48:12

变量定义和赋值(下)的相关文章

[编程]成都控制器开发:千万注意,不要轻易把变量定义和赋值搞在一起

最近开发编写一个测试设备的程序(C程序),在定义一个全局变量的时候,之前我喜欢在定义的时候直接赋值,如这样: unsigned char a=0;//这里直接给变量a定义并赋值 void main_function() { //在这里使用a ... } 不过这样做的时候却有时可能要出问题,比如可能导致在后期使用的时候a可能不等于0.最近就被这个故障烦了好久,起初检查好几遍了都无头绪,最后用串口把变量a传出显示才发现,a的数值变了, a咋会变呢?你打si也想不到它会变心, 最后改为如下面的定义和赋

变量定义和赋值(上)

一.变量的定义 1.变量: 实际上就是在内存中找一个空闲的地方,按照其要存放的数据类型开辟一片空间,用于存放数据,并给这个内存地址空间取一个名称,即是变量名. 2.语法格式要求为:数据类型 变量名: ①最后的分号千万不要丢了.变量的定义是一个语句,C 语言中,语句都是以分号结尾的. ②“数据类型”表示想要存储什么类型的数据就定义什么类型的变量.想要存储整数就定义成 int 型:想要存储小数就定义成 float 型或 double 型:想要存储字符就定义成 char 型....... ③“变量名”

1.2编程基础之变量定义、赋值及转换

Portal:http://noi.openjudge.cn/ch0102/ 一套水题,然而他们还是题 01-03是测基本数据类型存储空间大小 01 #include<iostream> #include<cstring> #include<cstdio> using namespace std; int main() { int a; short b; cout<<sizeof(a)<<' '<<sizeof(b); return

oracle 的变量的定义和赋值

第一种 :先定义后赋值 代码 : declare     V_AgeingType        varchar2(500); begin V_AgeingType :='111'; end 第二种 : 直接定义赋值 declare V_AgeingType        varchar2(500)  :='111'; begin ...... end

Shell脚本变量定义

http://blog.csdn.net/qyf_5445/article/details/8886071 自定义变量bash中变量无类型区分aa=abc123    定义变量并赋值abc123aa=          定义空变量或者清空变量aa,但变量还存在export test="hello world"  设定环境变量testexport或者export -p        显示所有环境变量declare / typeset 选项 变量名declare 或 typeset 有同样

Ansible系列(六):各种变量定义方式和变量引用

本文目录:1.1 ansible facts1.2 变量引用json数据的方式 1.2.1 引用json字典数据的方式 1.2.2 引用json数组数据的方式 1.2.3 引用facts数据1.3 设置本地facts1.4 输出和引用变量1.5 注册和定义变量的各种方式 1.5.1 register注册变量 1.5.2 set_fact定义变量 1.5.3 vars定义变量 1.5.4 vars_files定义变量 1.5.5 roles中的变量 1.5.6 命令行传递变量 1.5.7 inve

c++ 变量定义 的初始化规则

当定义没有初始化式的变量(如int i;)时,系统有可能会为我们进行隐式的初始化.至于系统是否帮我们隐式初始化变量,以及为变量赋予一个怎样的初始值,这要取决于该变量的类型以及我们在何处定义的该变量.            1]内置类型变量的初始化           内置变量是否自动初始化,取决于该变量定义的位置.           ①在全局范围内的内置类型变量均被编译器自动初始化为0值 1 #include<iostream> 2 3 using namespace std; 4 5 //

Oracle变量定义的三种方式(define,variable,declare)学习笔记

1.define(即host变量) Host变量主要作用是起到一个替代变量的作用,是主机环境可以和oracle进行交互的一个媒介. 通过define定义host变量的时候必须指定变量名和变量的值,如果变量名已经存在于host变量中,则自动覆盖,这个值不可以指定类型,一律按char存储. DEFINE 变量只在当前session环境中有效. (1).语法: define variable_name = value (2).声明和初始化DEFINE变量 //声明define变量的时候必须同时初始化赋

20175314薛勐 程序设计中临时变量的使用(课下测试,选做)

程序设计中临时变量的使用(课下测试,选做) 要求 定义一个数组:int arr[] = {1,2,3,4,5,6,7,8}; 打印原始数组的值:for(int i:arr){System.out.print(i + " "); } System.out.println();// 添加代码删除上面数组中的5 ... 打印出 1 2 3 4 6 7 8 0:for(int i:arr){System.out.print(i + " ");} System.out.pri