编程目的是为了解决问题,编程本质是用计算机的思维操作数据,操作就是算法,数据主要是数据类型,也可以说量,其中分为常量和变量,常量主要是指在量的生命周期内无法改变其值;变量主要是指在量的生命周期内可以随时改变其值。因此,从程序员的角度来看,变量就是个容器,可以存储数据。
  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. Python 正则表达式 search vs match

    search()和match()函数都是正则表达式中的匹配函数,二者有何区别呢? 1.match()从string的开始位置进行正则匹配,即从0位置开始匹配,若匹配上则返回一个match对象,否则返回 ...

  2. php扩展开发-哈希表

    什么是哈希表呢?哈希表在数据结构中也叫散列表.是根据键名经过hash函数计算后,映射到表中的一个位置,来直接访问记录,加快了访问速度.在理想情况下,哈希表的操作时间复杂度为O(1).数据项可以在一个与 ...

  3. 常见的js算法面试题收集,es6实现

    1.js 统计一个字符串出现频率最高的字母/数字 let str = 'asdfghjklaqwertyuiopiaia'; const strChar = str => { let strin ...

  4. Oracle redo与undo 第二弹

    首先看一下undo与redo的字面意思:   undo:撤销,也就是取消之前的操作.   redo:重做,重新执行一遍之前的操作. 什么是REDO REDO记录transaction logs,分为o ...

  5. A1065 A+B and C (64bit) (20)(20 分)

    A1065 A+B and C (64bit) (20)(20 分) Given three integers A, B and C in [-2^63^, 2^63^], you are suppo ...

  6. Jin Ge Jin Qu hao UVA - 12563 01背包

    题目:题目链接 思路:由于t最大值其实只有180 * 50 + 678,可以直接当成01背包来做,需要考虑的量有两个,时间和歌曲数,其中歌曲优先级大于时间,于是我们将歌曲数作为背包收益,用时间作为背包 ...

  7. Hibernate中1+N问题以及解决方法

    1. Hibernate中的1+N问题描述 在多对一关系中,当我们需要查询多的一方对应的表的记录时,可以用一条sql语句就能完成操作.然而,在多的一方的实体类中的@ManyToOne标注的fetch的 ...

  8. Android Studio 快捷键(包含自定义)终极版

      [F] [F] F2 在错误代码之间切换 F3 往前定位(Shift + F3:往后定位 )有问题 F4\Ctrl+鼠标点击\Ctrl+B 转到定义,查看类继承关系 F5 但不调试进入函数内部. ...

  9. HTML练习题

    1.查询一下对div和span标签的理解 div标签:是用来为HTML文档内大块的内容提供结构和背景的元素.DIV的起始标签和结束标签之间的所有内容都是用来构成这个块的,中文我们把它称作“层”. sp ...

  10. DevOps实施的三种IT障碍

    [TechTarget中国原创] 现今DevOps可谓是红遍半边天,但正因为它是新的东西,企业也在不停的犯同样的错误.从这些挑战中学习,让你的DevOps项目取得成功. DevOps正在以一种更有效的 ...