编程目的是为了解决问题,编程本质是用计算机的思维操作数据,操作就是算法,数据主要是数据类型,也可以说量,其中分为常量和变量,常量主要是指在量的生命周期内无法改变其值;变量主要是指在量的生命周期内可以随时改变其值。因此,从程序员的角度来看,变量就是个容器,可以存储数据。
  1. 变量的意义:从人的角度看,变量是个容器;如果从计算机的角度看,变量什么都不是;计算机的眼中只有内存地址,变量只是内存地址的一个别名,而且还是一个计算机根本不需要的别名。
  2. 变量的声明和定义:变量的声明只是告诉编译器有一个变量,编译器不会对变量分配内存;变量的定义通常包含变量的声明和初始化(赋值操作),编译器完成内存的分配工作;通过赋值符号“=”完成存储单元地址和存储内容之间的关联工作,从而实现通过变量名访问存储内容的步骤。如果不使用变量,需要通过存储单元的地址访问存储内容,对程序操作员来说实在有点复杂。
  3. 变量的命名规则:(1)、变量名只能包含字母(大小写都可以)、数字和下划线‘_’,但不能以数字开头,一般以不以下划线开始;(2)、变量名称一般是区分大小写,而且变量名不能用C语言中的32个关键字;(3)、变量名一般要能够明确表达含义,可以包含多个单词,单词的首字母大写即可,但是循环变量i,j,k一般只用单字母表示即可;(4)、常量一般全部用大写字母表示。
  4. 变量的初始化:变量的首次赋值称为变量的初始化。变量的声明只是表明变量向编译器申明变量的类型,变量的赋值完成编译器对变量的内存分配。变量可以被多次赋值,因此,经常在变量声明的同时对变量进行初始化,在需要的时候再进行赋值操作。
  5. 变量的其他:(1)、变量的类型不同主要是为了表明计算机分配的内存大小的不同,如果分配的内存大小相同,就无需区分变量的大小;(2)为了表明指针变量,经常在变量名前,加上”ptr_”的前缀;(3)对于复杂的类型,经常使用typedef对其进行二次定义,例如为了定义结构体指针,可以采用如下代码:
常规化的定义结构体,代码片段1
struct student{
char name[20];
int age;
float record;
}; struct student stu1;
strcpy(stu1.name, "zhangsan");
stu1.age = 20;
stu1.record = 76.5; printf("The student %s's information: age is %d and record is %f\n", stu1.name, stu1.age, stu1.record);
使用typedef定义的结构体,代码片段2
typedef struct student{
char name[20];
int age;
float record;
} Student; Student stu1;
strcpy(stu1.name, "zhangsan");
stu1.age = 20;
stu1.record = 76.5; printf("The student %s's information: age is %d and record is %f\n", stu1.name, stu1.age, stu1.record);
使用typedef定义的结构体指针,代码片段3
typedef struct student{
char name[20];
int age;
float record;
} *ptr_Student; ptr_Student stu1 = (ptr_Student)malloc(sizeof(struct student3));
strcpy(stu1->name, "zhangsan");
stu1->age = 20;
stu1->record = 76.5; printf("The student %s's information: age is %d and record is %f\n", stu1->name, stu1->age, stu1->record);

请读者自行选择使用哪一种吧!

《手把手教你学C语言》学习笔记(3)---变量的更多相关文章

  1. 《手把手教你学C语言》学习笔记(2)---学习C语言的目标和方法

    一.学习C语言的目标主要是: 熟练掌握C语言的关键字,语法规则,程序控制等: 掌握基本的数据结构,数组.链表.栈和队列等: 掌握C语言中指针和内存.数组与指针.函数与指针.变量和指针.结构体和指针.硬 ...

  2. 《手把手教你学C语言》学习笔记(1)---C语言的特点

    学习C语言的原因,主要是需要使用C语言编程,我用故我学,应该是最主要的原因了. C语言的定位:C语言严格意义上只能算是中级语言,是面向过程编程语言的集大成者,虽然这种语言有很多的问题,但总体而言是瑕不 ...

  3. 《手把手教你学C语言》学习笔记(4)---代码规范

    编程过程中需要遵守编译器的各种约定,例如以下代码: 1 #include <stdio.h> 2 3 int main(int argc, char **argv) 4 { 5 print ...

  4. 《手把手教你学C语言》学习笔记(10)--- 程序的循环控制

    C语言程序设计中,有些代码需要重复执行很多次,循环主要有三类: 一.for循环 1.基本格式为:for(表达式1:表达式2:表达式3){ //表达式1:循环变量赋初值 //表达式2:循环变量满足的条件 ...

  5. 《手把手教你学C语言》学习笔记(9)--- 程序的选择控制

    C语言是面向过程编程语言的主要代表,其特征就是严格控制程序的执行语句顺序,因此,C程序的主要结构控制就是顺序控制,以main函数为入口函数,根据控制,一条一条地执行语句.由于实际需求是很复杂的,只用顺 ...

  6. 《手把手教你学C语言》学习笔记(8)--- 运算符和表达式

    C语言编程的核心是指针和库,而库的核心就是函数,函数的基本组成部分就是语句. C语言合法表达式加上分号(语句结束符)构成C函数的基本部分语句.如果只有分号没有表达式就构成空语句,空语句常常用来形成占位 ...

  7. 《手把手教你学C语言》学习笔记(7)---程序的输入与输出

    程序设计中,为了观察程序的运行状态和结构,需要输出指定的内容:为了让程序能够更加灵活,可以根据需求输入内容,让计算机处理和运行:所以程序的输入输出就显的尤为重要.主要包括printf和scanf函数. ...

  8. 《手把手教你学C语言》学习笔记(6)---数据类型和常量

    计算机中需要保存信息,就需要数据存储,数据的存储就需要划分数据类型.主要包括:基本数据类型.指针类型.构造类型.空类型. 基本类型:整型---主要用来表示整数,可以分为无符号和有符号:又分为基本整型. ...

  9. 《手把手教你学C语言》学习笔记(5)---计算机的存储和访问

    数据存储是以“字节”(Byte)为单位,数据传输是以大多是以“位”(bit,又名“比特”)为单位,一个位就代表一个0或1(即二进制),每8个位(bit,简写为b)组成一个字节(Byte,简写为B),是 ...

随机推荐

  1. phpstudy配置SSL证书的步骤(Apache环境)以及一些注意事项

    准备工具(我自己的): 腾讯云的域名和云主机,还有SSL证书,以及phpstudy 首先要下载自己的SSL证书,会得到一个压缩包,解压以后会得到四个文件夹和一个csr文件, Apache文件夹内三个文 ...

  2. PHP跨域请求nodejs

    摘要:用nodejs作为服务器,php作为客服端进行跨域请求,并返回数据. 一:windows环境下的nodejs安装(以及express模板的安装):http://blog.uifanr.com/2 ...

  3. Python知识点进阶——生成器

    生成器 为什么要将列表转化为迭代器? 因为列表太大的话用内存太大,做成迭代器可以节省空间,用的时候再拿出部分. 生成器是不会把结果保存在一个系列中,而是保存生成器的状态,在每次进行迭代时返回一个值,知 ...

  4. Python操作SQLLite(基本操作)

    SQLite 是一个软件库,实现了自给自足的.无服务器的.零配置的.事务性的 SQL 数据库引擎.SQLite 是在世界上最广泛部署的 SQL 数据库引擎.SQLite 源代码不受版权限制. Pyth ...

  5. docker 学习(2)

    docker容器中安装vim ubuntu 中默认未装vim,docker run ubuntu vim 出现: container_linux.go:247: starting container ...

  6. GSMM数据库设计小结

    边写边结 1.新增,删除,修改在各自的DAL中进行,查,可以新建一个DAL,里面是需要的各个属性,跨表,不同表属性整合成一个对象(集合)返回,输出到用户界面.

  7. 设计模式之第11章-建造者模式(Java实现)

    设计模式之第11章-建造者模式(Java实现) “那个餐厅我也是醉了...”“怎么了?”“上菜顺序啊,竟然先上甜品,然后是冷饮,再然后才是菜什么的,无语死了.”“这个顺序也有人这么点的啊.不过很少就是 ...

  8. 新博客 http://kunyashaw.com/

    感谢博客园. 请关注我的新博客: http://kunyashaw.com/

  9. 使用 Pinup,PinupManager 在 XNA 中创建贴图(十七)

    平方已经开发了一些 Windows Phone 上的一些游戏,算不上什么技术大牛.在这里分享一下经验,仅为了和各位朋友交流经验.平方会逐步将自己编写的类上传到托管项目中,没有什么好名字,就叫 WPXN ...

  10. easyui 右键绑定事件

    $(function(){ $('#hospitalTree').bind('contextmenu', function(e) {            e.preventDefault();   ...