目录

1.转义字符

2.常量与变量

2.1 什么是常量和变量

2.2 内存

2.3 变量的内存机制

2.4 变量命名规则

2.5 变量的定义

2.6 常量的定义

2.7 计算机内存字节顺序

2.8 局部与全局变量的区别

3.数据类型

3.1 数据表示

3.1.1进制之间转换

3.1.2计算机存储数据

3.1.3数据类型

3.1.4数据类型与内存

3.1.5正负符号的表示

3.1.6数值表示方法----原码、反码、补码

3.1.7数据类型有符号和无符号

3.1.8数据类型的取值范围

3.2 基本数据类型

3.2.1整型

3.2.2实型

3.2.3字符型

3.3 数据类型转换

3.3.1 隐式转换

3.3.2 强制数据转换

3.3.3 强制类型数据转换的影响

3.3.4 数据转换的二进制原理

1.转义字符

具体转义字符,例如斜杠、单引号、双引号转义、换行

2.常量与变量

2.1 什么是常量和变量

计算机的数据在参与程序执行过程中,有些数据需要经常变化,有些数据不需要变化。所以把数据就分为常量和变量。

常量:程序执行过程中不需要变化的。

变量:程序执行过程中需要经常变化的。

2.2 内存

内存是用于存放数据的,内存=内存地址+内存空间(内存单元)。

2.3 变量的内存机制

当程序执行,计算机就会为每个变量分配一个内存空间以供使用,通过变量名就可以实现对数据的读取、写入。

流程图:

变量名->数据类型->变量地址--->内存地址->内存空间

细节:

1,变量之所以变化,就是变量储存值得变化。

2,同一时间内,变量空间值只能保留一份值,新值冲掉旧值。

分析

a=1;

b=2;

a+b=3;

2.4 变量命名规则

标识符:用于标识常量、变量、函数的字符序列

规则:

1,_和字母开头,由字母和数字、_组成

2,严格区分大小写,

3,不能用关键字

2.5 变量的定义

1,定义变量的两种书写形式;

2,使用变量之前必须定义;

2,变量一定要初始化;

---前一个应用程序结束,操作系统并没有把内存空间数据清除,当新的应用程序开始执行,操作系统把会把闲置下来的内存重新分配给程序使用,如果没有对变量进行初始化,就有可能使用到上个程序的垃圾数据。

当然有些操作系统,会进行些默认的处理。

细节:

1,Vs2013

引用未初始化的变量,要报错

只定义未初始化,未引用不报错。可以编译通过。

引用:使内存地址与变量名关联起来?

2.6 常量的定义

1,定义常量的两种形式

Define ;const锁定变量

2,常量的特点

1,在程序执行过程中一旦定义,就不能修改其值;

2,常量的好处:可以修改定义处的值,达到修改全部引用该常量的值

2.7 计算机内存字节顺序

数据在内存空间里按照什么顺序存放。

2.8 局部与全局变量的区别

函数内称为局部变量,外面就是全局变量

局部变量:  没有生明和定义的差别;

全局变量:有声明和定义的差别,定义只能一个,声明可以多个

3.数据类型

3.1 数据表示

正确表示一个十进制的数65

    int a,b,c;
a=; //65十进制形式
b=;//65八进制形式
c=0x41;//65十六进制形式
错误表示一个十进制的数65
a=; //十进制是65
b=; //十进制是53
c=0x65; //十进制是101

3.1.1进制之间转换

二进制、八进制、十六进制转十进制------按权相加;

二进制转八进制,八进制转二进制------三位;

二进制转十六进制,十六进制转二进制-----四位;

十进制转二进制------整除;

十进制小数转换为二进制------乘2取整

3.1.2计算机存储数据

数据是以二进制位序列的方式存放于内存中。

二进制序列->加上结构的概念->称为字节。8个位为一个字节。

内存起始编号为1,每隔8位编号增1,对内存进行编号管理。

3.1.3数据类型

数据类型主要是对计算机出现的数据进行一个分类

数据类型种类:

1)基本数据类型:数值(整型、实型)和字符型

2)构造类型:数组、结构体、共用体

3)指针类型:

4)空类型:

3.1.4数据类型与内存

不同的数据类型占据不同的空间,整数从数学上就是从负无穷到正无穷之间的任意数,但是内存是有限的。

3.1.5符号的表示

整数的正负----用最高位表示符号,0表示正,1表示为负。

3.1.6数值表方法---原码、反码、补码

怎么求一个数值的原码、反码、补码

在计算机中,数值一律用补码来表示(存储)

原因

1,使用补码,可以将符号位和其它位统一处理,减法也可按加法来处理,两个用补码表示的数相加时,如果最高位(符号位)有进位,则进位被舍弃。

2,使用原码,当两数相加时,如果是同号则数值相加;如果是异号,则要进行减法。而在进行减法时还要比较绝对值的大小,然后大数减去小数,最后还要给结果选择符号。

图。。。。。。。。。。待补充

3.1.7 数据类型的符号

数据类型分为:有符号和无符号

3.1.8 数据类型的取值范围

一个数据类型能表示的最小值 、最大值。

3.2 基本数据类型

3.2.1整型

1)整型常量三种表示形式:十进制、八进制、十六进制

细节:整型常量的取值范围受到打印控制符决定的。

2)整型变量根据取值范围分为:short 、int、 long(默认有符号,可以指定为无符号)

细节:超出数据类型的表示范围,就会数据溢出。越过一定范围就会出错!

3)整型变量的内存分析

4)可以夸平台移植的整数

Int : 16位为2个字节, 32位4个字节

Long :64位Linux8个字节,Windows 32/64位都是4个字节

3.2.2实型

小数点位置固定不变的称为定点数,小数点位置可以浮动的称为浮点数。在计算机中,用定点数表示整数和纯小数,即有整数部分、又有小数部分的用浮点数表示。

科学计数法:1.234E2 其中1.234为尾数,10为基数,2为指数。

浮点数利用指数达到浮动小数点的效果,灵活的表达更大的实数。

1)两种表示形式:十进制,指数

2)浮点型数据分为:单精度(4个字节,6-7位有效数字)和双精度(8个字节,15-16位有效数字)。例如,1.0(8个字节),1.0f(4个字节)

3)为什么用浮点数表示实数?

1.01

1.0001

1.00000001

不能用整数一一对应方式,浮点数利用指数达到浮动小数点的效果,灵活的表达更大的实数;打印int与float 极值可以,得出都占4个字节,float能表达更大的值。

3)浮点数的误差

5)三种类型:float  、double、long double

输入、输出float,用%f;

输入、输出double,用%lf

输入、输出long double,用%Lf;

6) 浮点内存原理

3.2.3字符型数据

1,字符常量:单引号括起来的单个字符或转义字符。

 字符常量的值:该字符的ASCII码值

1)用putchar(),分别使用单引号、十进制、八进制、十六进制输出字符

2)用putchar()输出转义字符

//0x41(十六进制)=='\x41'(字符)==65(十进制)==A(字符);

方式一
char ch0,ch1, ch2, ch3;
ch0 = 'A';
ch1 = ;
ch2 = '\x41';
ch3 = 0x41;
printf("%c,%c,%c,%c",ch0,ch1,ch2,ch3);
方式二
putchar('\n');
putchar('A');
putchar();
putchar('\x41');
putchar(0x41);

2,字符串常量:用双引号括起来的字符序列。

1),每个字符串尾自动加个‘\0’作为字符串结束标志。

2)字符串不能赋值个字符变量

3)用printf输出字符串

3,字符常量与字符串常量的区别?

3字符型数据---char

字符变量在内存中占一个字节,存储的事字符的ASCII值。

取值范围:

char :-127~+127

unsigned char :0~255;

char ch= //取值范围-127+127

 //最大值+127

+       //数据溢出

 //进位后内存中二进制形式,

%d 带符号十进制整数,所以是4个字节 ,以符号进行填充。
填充后如下:
二进制--补码形式
反码
原码
- 十进制
%x 无符号十六进制整数,所以是4个字节,以符号进行填充。
填充后如下:
原码-二进制
f f f f f f 无符号十六进制 printf("%d,%x",ch,ch)//-128,ffffff80

1与‘1’的区别?

ASCII特殊字符

宽字符问题

英文字符---1个字节,汉字---2个字节。当用一个汉字去表示字符,就会出现宽字符问题,处理宽字符就把汉字当作一个字符。

3.3 数据类型转换

3.3.1 隐式转换

1,表达式计算

1)小的数据类型转向大的数据类型

2)有符号转向无符号

3)char\short直接转成int类型

2,赋值号类型换

3.3.2 强制数据转换

强制转换得到只是个中间变量,不会改变原数据的值。

结论:强制转换可以将类型转成掐好解析的类型,就可以的到正确的结果。

3.3.3 强制类型数据转换的影响

1,精度损失

2,数据溢出

3.3.4 数据转换的二进制原理

char ch= //取值范围-127+127

 //最大值+127

+       //数据溢出

 //进位后内存中二进制形式,

%d 带符号十进制整数,所以是4个字节 ,以符号进行填充。
填充后如下:
二进制--补码形式
反码
原码
- 十进制
%x 无符号十六进制整数,所以是4个字节,以符号进行填充。
填充后如下:
原码-二进制
f f f f f f 无符号十六进制 printf("%d,%x",ch,ch)//-128,ffffff80

C语言笔记变量与数据类型的更多相关文章

  1. OpenGL ES着色器语言之变量和数据类型(二)(官方文档第四章)

    OpenGL ES着色器语言之变量和数据类型(二)(官方文档第四章) 4.5精度和精度修饰符 4.5.1范围和精度 用于存储和展示浮点数.整数变量的范围和精度依赖于数值的源(varying,unifo ...

  2. OpenGL ES着色器语言之变量和数据类型(一)(官方文档第四章)和varying,uniform,attribute修饰范围

    OpenGL ES着色器语言之变量和数据类型(一)(官方文档第四章)   所有变量和函数在使用前必须声明.变量和函数名是标识符. 没有默认类型,所有变量和函数声明必须包含一个声明类型以及可选的修饰符. ...

  3. [C语言入门笔记]变量与数据类型

    变量与数据类型 什么是变量? 变量是一个变化的量 是内存中的一个空间 变量的定义方法是什么? 数据类型 变量名 = 值; 数据类型有哪些? 整型int 浮点型float double 字符型char ...

  4. iOS开发环境C语言基础 变量 、 数据类型和变量赋值 、 其他 、 运算符

    1 变量使用常用错误汇总 1.1 问题 在我们使用变量的过程中,会遇到一些问题,在此将这些问题进行汇总,在今后使用的过程中,不出错.即使出现错误也可以很快地找到问题所在. 1.2 方案 变量在使用的过 ...

  5. JavaScript学习笔记——变量和数据类型

    一.javascript命名规范 1. 严格区分大小写 2. 变量的命名必须以字母或 _或 $开头,余下的部分可以是任意的字母,数字,或者是 _或者是$ 3.不能用关键字或者是保留字命名. 4.jav ...

  6. C语言之变量和数据类型

    常量:程序在运行过程中无法对值进行更改. 变量:是在计算机内存空间一种表示,声明变量将会向计算机内存申请存储空间,用于保存数据,计算机的CPU会从内存中加载数据. 声明变量: 数据类型  变量名[=值 ...

  7. C#语言与变量、数据类型

    一.计算机语言 1.计算机语言包括:C\PHP\Ruby\JAVA\C#\Basi\JS\C++ 2.计算机语言发展史:机器语言——汇编语言——高级语言 二.代码 1.程序始终:Code(编码).Co ...

  8. Java语言基础---变量与数据类型

    变量的作用域 java用一对大括号“{}”作为语句块的范围,称为作用域.作用域中的变量不能重复定义:离开作用域,变量所分配的内存空间将被JVM所收回. 基本数据类型的包装类 java为基础数据类型提供 ...

  9. Dart学习笔记-变量常量数据类型

    变量和常量 1.变量的定义 main() { var t_str = 'hello world'; var t_num = 123456; String t_str2 = '你好,我很高兴'; int ...

随机推荐

  1. 用python完成带有进度条的圆周率计算

    代码如下:import math import time scale= s,m,=, print("执行开始".center(scale//2, "-")) s ...

  2. Codeforces 1045B Space Isaac - 数论 - Hash

    题目传送门 传送门I 传送门II 传送门III 题目大意 给定将$\left \{ 0, 1, \dots, m - 1\right \}$分成了不相交的两个非空集合$A$和$B$,给定$A$,问存在 ...

  3. 第十届蓝桥杯2019年C/C++ 大学B组省赛试题

    2019年第十届蓝桥杯大赛软件类省赛C/C++大学B组 试题 A:组队 本题总分:5分 [问题描述] 作为篮球队教练,你需要从以下名单中选出 1号位至 5号位各一名球员, 组成球队的首发阵容. 每位球 ...

  4. 7.7 GRASP原则七: 纯虚构 Pure Fabrication

    GRASP原则七: 纯虚构 Pure Fabrication  如果依据信息专家原则获得的解决方案不合适,既不想违反低耦合.高内聚,也不想违 反其他的原则, 该如何把职责分配给对象?  左右为难… ...

  5. js的event事件对象汇总

    JavaScript事件对象是浏览器默认传入的,但是对于浏览器的兼容问题,我们需要对事件对象进行兼容.但是jQuery已经帮我们解决了所有兼容性的问题,并且给我们添加了很多有用的方法.已经是比较历史的 ...

  6. vue2.0 实现富文本编辑器功能

    前端富文本编译器使用总结: UEditor:百度前端的开源项目,功能强大,基于 jQuery,但已经没有再维护,而且限定了后端代码,修改起来比较费劲 bootstrap-wysiwyg:微型,易用,小 ...

  7. struct放入list中按照某字段排序

    //管线字段信息 public struct FieldInfo { public int iID; //编号 public string sFieldName; //字段名 public strin ...

  8. 20175227张雪莹 2018-2019-2 《Java程序设计》第六周学习总结

    20175227张雪莹 2018-2019-2 <Java程序设计>第六周学习总结 教材学习内容总结 第七章 内部类与异常类 内部类:在一个类中定义另一个类:包含内部类的类为外嵌类 内部类 ...

  9. vue项目中多个组件之间传递数据

    //父组件<template> <div> <div style="float: left"> <input-data :city=&qu ...

  10. css图形——三角形

    1.css图形简介 在浏览网页的时候,我们经常看见各种图形的效果,而但凡涉及到图形效果,我们第一个想到的就是用图片来实现.但是在前端开发中,为了网站的性能速度,我们都是秉承着少用图片的原生质. 因为图 ...