《手把手教你学C语言》学习笔记(3)---变量
编程目的是为了解决问题,编程本质是用计算机的思维操作数据,操作就是算法,数据主要是数据类型,也可以说量,其中分为常量和变量,常量主要是指在量的生命周期内无法改变其值;变量主要是指在量的生命周期内可以随时改变其值。因此,从程序员的角度来看,变量就是个容器,可以存储数据。
- 变量的意义:从人的角度看,变量是个容器;如果从计算机的角度看,变量什么都不是;计算机的眼中只有内存地址,变量只是内存地址的一个别名,而且还是一个计算机根本不需要的别名。
- 变量的声明和定义:变量的声明只是告诉编译器有一个变量,编译器不会对变量分配内存;变量的定义通常包含变量的声明和初始化(赋值操作),编译器完成内存的分配工作;通过赋值符号“=”完成存储单元地址和存储内容之间的关联工作,从而实现通过变量名访问存储内容的步骤。如果不使用变量,需要通过存储单元的地址访问存储内容,对程序操作员来说实在有点复杂。
- 变量的命名规则:(1)、变量名只能包含字母(大小写都可以)、数字和下划线‘_’,但不能以数字开头,一般以不以下划线开始;(2)、变量名称一般是区分大小写,而且变量名不能用C语言中的32个关键字;(3)、变量名一般要能够明确表达含义,可以包含多个单词,单词的首字母大写即可,但是循环变量i,j,k一般只用单字母表示即可;(4)、常量一般全部用大写字母表示。
- 变量的初始化:变量的首次赋值称为变量的初始化。变量的声明只是表明变量向编译器申明变量的类型,变量的赋值完成编译器对变量的内存分配。变量可以被多次赋值,因此,经常在变量声明的同时对变量进行初始化,在需要的时候再进行赋值操作。
- 变量的其他:(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)---变量的更多相关文章
- 《手把手教你学C语言》学习笔记(2)---学习C语言的目标和方法
一.学习C语言的目标主要是: 熟练掌握C语言的关键字,语法规则,程序控制等: 掌握基本的数据结构,数组.链表.栈和队列等: 掌握C语言中指针和内存.数组与指针.函数与指针.变量和指针.结构体和指针.硬 ...
- 《手把手教你学C语言》学习笔记(1)---C语言的特点
学习C语言的原因,主要是需要使用C语言编程,我用故我学,应该是最主要的原因了. C语言的定位:C语言严格意义上只能算是中级语言,是面向过程编程语言的集大成者,虽然这种语言有很多的问题,但总体而言是瑕不 ...
- 《手把手教你学C语言》学习笔记(4)---代码规范
编程过程中需要遵守编译器的各种约定,例如以下代码: 1 #include <stdio.h> 2 3 int main(int argc, char **argv) 4 { 5 print ...
- 《手把手教你学C语言》学习笔记(10)--- 程序的循环控制
C语言程序设计中,有些代码需要重复执行很多次,循环主要有三类: 一.for循环 1.基本格式为:for(表达式1:表达式2:表达式3){ //表达式1:循环变量赋初值 //表达式2:循环变量满足的条件 ...
- 《手把手教你学C语言》学习笔记(9)--- 程序的选择控制
C语言是面向过程编程语言的主要代表,其特征就是严格控制程序的执行语句顺序,因此,C程序的主要结构控制就是顺序控制,以main函数为入口函数,根据控制,一条一条地执行语句.由于实际需求是很复杂的,只用顺 ...
- 《手把手教你学C语言》学习笔记(8)--- 运算符和表达式
C语言编程的核心是指针和库,而库的核心就是函数,函数的基本组成部分就是语句. C语言合法表达式加上分号(语句结束符)构成C函数的基本部分语句.如果只有分号没有表达式就构成空语句,空语句常常用来形成占位 ...
- 《手把手教你学C语言》学习笔记(7)---程序的输入与输出
程序设计中,为了观察程序的运行状态和结构,需要输出指定的内容:为了让程序能够更加灵活,可以根据需求输入内容,让计算机处理和运行:所以程序的输入输出就显的尤为重要.主要包括printf和scanf函数. ...
- 《手把手教你学C语言》学习笔记(6)---数据类型和常量
计算机中需要保存信息,就需要数据存储,数据的存储就需要划分数据类型.主要包括:基本数据类型.指针类型.构造类型.空类型. 基本类型:整型---主要用来表示整数,可以分为无符号和有符号:又分为基本整型. ...
- 《手把手教你学C语言》学习笔记(5)---计算机的存储和访问
数据存储是以“字节”(Byte)为单位,数据传输是以大多是以“位”(bit,又名“比特”)为单位,一个位就代表一个0或1(即二进制),每8个位(bit,简写为b)组成一个字节(Byte,简写为B),是 ...
随机推荐
- 【Ecshop】v2.7.3模板变量标签改进
改进代码后虽可解决大多数函数参数的问题,但也同样产生了参数问题:ecshop模板函数参数有部分没有被引号包裹,所以正则并不能匹配到,要修改为引号包裹,那是个大工程. 为了使ecshop模板支持date ...
- Scrapy-redis分布式爬虫爬取豆瓣电影详情页
平时爬虫一般都使用Scrapy框架,通常都是在一台机器上跑,爬取速度也不能达到预期效果,数据量小,而且很容易就会被封禁IP或者账号,这时候可以使用代理IP或者登录方式爬,然而代理IP很多时候都很鸡肋, ...
- python字符编码小结
首先简要说一下各种字符编码: 1. ASCII 计算机只认识0101,但如何让计算机认识人类语言?将每个字母和符号给予固定的编号,然后将这个编号转换成二进制,计算机就可以正确识别这些字母与符号,同时计 ...
- Android设为系统默认的短信应用
要设为系统默认的短信应用首先要配置一下AndroidManifest.xml文件,添加下列: <!-- BroadcastReceiver that listens for incoming S ...
- jvm探秘之三:GC初步
GC即垃圾收集器,虚拟机的必要组成部分. 不过这里说当然是,hotspot虚拟机(jvm的主要版本)的GC机制,前面说过了jvm的组成部分,那么想当然GC只需要负责方法区和堆就好了,虚拟机栈.本地方法 ...
- vba通过函数调用Winrar压缩软件压缩文件
Dim site As String Dim FolderName As String Dim FolderName1 As String Dim Rarex ...
- 59、佳博wifi打印机怎么配置
1.去这里下载配置软件(注意,需要再windows下进行)http://pan.baidu.com/s/1bn1y4FX,并解压安装程序 2.连上wifi打印机的热点,比如说佳博打印机的默认为Gpri ...
- Wordpress Uncaught TypeError: b(...).not(...).filter(...).mediaelementplayer is not a function
Wordpress 插件页面报错如下图: 原因及解决方法: 引入了两次 jquery.js 或 jquery.js 定义的变量导致报错,删除在插件页面自己引入的 jquery,js 即可解决报错. 大 ...
- 查看apache和nginx的负载和连接数情况
1.查看apache当前并发访问数:netstat -an | grep ESTABLISHED | wc -l对比httpd.conf中MaxClients的数字差距多少. 2.查看有多少个进程数: ...
- Codeforces 1158C Permutation recovery
https://codeforces.com/contest/1158/problem/C 题目 已知 $p_1, p_2, \dots, p_n$ 是 $1$ 到 $n$ 的一个排列. 给出关于这个 ...