常量与变量

第六章 字符型数据

耗尽温柔 提交于 2020-02-01 00:18:54
第六章 字符型数据 1·字符型常量 C语言中,一个字符常量代表ASCII字符集中的一个字符,在程序中用单引号把一个字符括起来作为字符常量。 说明: (1)单引号中的大写字母和小写字母代表不同的字符常量 (2)单引号中的空格符’ ’ 也是一个字符常量,但不能写成两个连续的单引号 (3)字符常量只能包含一个字符,‘agc’是非法的 (4)字符常量只能由单引号括起来,不能用双引号括起来 字符常量在内存中占一个字节,存放的是字符的ASCII代码值。C语言规定,所有字符常量都作为整形量来处理,在计算机内部,其对应的整型数就是ASCII字符集中该字符的序号(即ASCII代码值)。 字符常量‘A’的值是65(八进制数101)‘a’97(141)‘0’48(60)‘ ’32(40) 转义字符常量 转义字符又称反斜线字符,这些字符常量总是以一个反斜线开头后跟一个特定的字符,用来代表某一个特定的ASCII字符,这些字符常量也必须括在一对单引号内。 字符形式 功能 字符形式 功能 \n 回车换行 \ 反斜杠字符‘\’ \t 横向跳若干格(代表“Tab”键) \’ 单引号(撇号)字符 \v 竖向跳格 \’’ 双引号字符 \r 回车符 \ddd 三位八进制数代表一个ASCII字符 \f 换页符 \xhh 二位十六进制数代表的一个ASCII字符 \b 退格符(代表“Backspace”键) \0 空值

【C语言】08-数组

 ̄綄美尐妖づ 提交于 2020-01-30 04:33:08
本文目录 地址 一、一维数组 二、二维数组 说明:这个C语言专题,是学习iOS开发的前奏。也为了让有面向对象语言开发经验的程序员,能够快速上手C语言。如果你还没有编程经验,或者对C语言、iOS开发不感兴趣,请忽略 为了让大家更好地学习和理解数组,我们先来认识一下内存中的"地址"。 回到顶部 地址 1.计算机中的内存是以字节为单位的存储空间。内存的每一个字节都有一个唯一的编号,这个编号就称为地址。凡存放在内存中的程序和数据都有一个地址,也就是说,一个函数也有自己的内存地址。 2.当定义一个变量时,系统就分配一个带有唯一地址的存储单元来存储这个变量。比如: char a = 'A'; // A的ASCII值为65 int b = 66; 在16bit编译器环境下,系统为a、b分别分配1个字节、2个字节的存储单元。变量存储单元的第一个字节的地址就是该变量的地址。 可以看出,变量a的地址是ffc3;变量b的地址是ffc1。内存中存储的都是2进制数据。 3.在调试过程中,我们采取打印的方式查看变量的地址: int c = 10; // 以16进制形式输出地址 printf("16进制:%x\n", &c); // 以10进制形式输出地址 printf("10进制:%d", &c); 输出结果: 回到顶部 一、一维数组 1.一维数组的定义 * 定义的形式为: 类型 数组名[元素个数] int

C语言 08-数组

冷暖自知 提交于 2020-01-30 04:32:16
本文目录 地址 一、一维数组 二、二维数组   说明:这个C语言专题,是学习iOS开发的前奏。也为了让有面向对象语言开发经验的程序员,能够快速上手C语言。如果你还没有编程经验,或者对C语言、iOS开发不感兴趣,请忽略。 为了让大家更好地学习和理解数组,我们先来认识一下内存中的"地址"。 地址   1.计算机中的内存是以字节为单位的存储空间。内存的每一个字节都有一个唯一的编号,这个编号就称为地址。凡存放在内存中的程序和数据都有一个地址,也就是说,一个函数也有自己的内存地址。   2.当定义一个变量时,系统就分配一个带有唯一地址的存储单元来存储这个变量。比如: char a = 'A'; // A的ASCII值为65 int b = 66; 在16bit编译器环境下,系统为a、b分别分配1个字节、2个字节的存储单元。变量存储单元的第一个字节的地址就是该变量的地址。 可以看出,变量a的地址是ffc3;变量b的地址是ffc1。内存中存储的都是2进制数据。 3.在调试过程中,我们采取打印的方式查看变量的地址: int c = 10; // 以16进制形式输出地址 printf("16进制:%x\n", &c); // 以10进制形式输出地址 printf("10进制:%d", &c); 输出结果: 一、一维数组 1.一维数组的定义 * 定义的形式为:类型 数组名[元素个数] int a[5]

烦人的const 把我搞晕了

寵の児 提交于 2020-01-29 10:48:11
转载 自CSDN博客: http://blog.csdn.net/eroswang/archive/2009/05/20/4204693.aspx Const 是C++中常用的类型修饰符,常类型是指使用类型修饰符const说明的类型,常类型的变量或对象的值是不能被更新的。 一、Const作用 如下表所示: 1 可以定义const常量   const int Max = 100; 2 便于进行类型检查 const常量有数据类型,而宏常量没有数据类型。编译器可以对前者进行类型安全检查,而对后者只进行字符替换,没有类型安全检查,并且在字符替换时可能会产生意料不到的错误 void f(const int i) { .........} //对传入的参数进行类型检查,不匹配进行提示 3 可以保护被修饰的东西 防止意外的修改,增强程序的健壮性。 void f(const int i) { i=10;//error! } //如果在函数体内修改了i,编译器就会报错 4 可以很方便地进行参数的调整和修改 同宏定义一样,可以做到不变则已,一变都变   5 为函数重载提供了一个参考   class A { ...... void f(int i) {......} //一个函数 void f(int i) const {......} //上一个函数的重载 ...... }; 6 可以节省空间

指针常量、常量指针、指向常量的指针常量的区别以及数组名的本质

◇◆丶佛笑我妖孽 提交于 2020-01-29 05:46:56
1、指针常量(*const):对应指针变量,即指针本身是常量,指针指向的内容可以被修改。 数据类型 * const 指针变量=变量名(或取地址); int * const p ; 2、常量指针(const*):常量的指针,即指针指向的内容不能被修改,但指针本身是变量,可以被修改。 数据类型 const * 指针变量=变量名(或取地址); int const * p ; const int * p ; //都可以 3、指向常量的指针常量:即指针本身是常量,指向的内容也是常量,都不能修改。 -const 数据类型 * const 指针变量=变量名(或取地址); const int * const p ; 4、数组名 指针和数组名在本质上是不同的, 1,指针是地址变量,而数组名是地址常量 数组名本质上是一个 地址常量 ,不是指针,不管是指针常量还是常量指针都不是,之所以在实际编程中,数组名表现出“是”指针的样子,那是因为经过隐式转换形成的,而不是数组名本身具有的 指针与地址的区别:   1、指针和地址最大的区别就是指针是有类型的,地址是没有类型的。我们当然可以通过绝对地址的方式找到函数和数据,但是地址是没有类型的,不能对地址进行算术操作,在涉及诸如数组等操作时就不能通过地址的自增和自减来访问数组的各个变量。   2、指针是由地址和类型两部分构成的

Java学习#1

走远了吗. 提交于 2020-01-28 04:50:16
JDK和IDE的安装 第一个程序HelloWorld main方法的快捷键:psvm 输出语句的快捷键:sout public class helloworld { /** main方法是程序的主入口,它的写法是固定的 */ public static void main ( String [ ] args ) { /* 这个是main方法的主体 我们要实现的功能都写在这里 */ System . out . println ( "helloworld" ) ; //这是一个输出语句,可以讲结果打印到控制台中 } } 3.变量的定义和使用 public class VariableDemo { public static void main ( String [ ] args ) { //定义变量,记录学生个数 //变量的定义格式:数据类型 变量名 = 初始化值; int number = 12 ; //使用变量 System . out . println ( number ) ; } } 等号左右要加上空格 变量的定义格式: 数据类型 变量名 = 初始化值; 定义变量的注意事项: 变量未赋值,不能使用 变量只在它所属的范围内有效(这也是变量的 作用域) 一行上可以定义多个变量,但是不建议这么写 4.数据的类型 数据类型: byte,short,int,long,float

define() vs const 该如何选择?

僤鯓⒐⒋嵵緔 提交于 2020-01-27 20:19:08
使用 define(),除非考虑到可读性、类常量、或关注微优化 1、在 PHP 中是使用 define() 函数来定义常量,PHP 5.3.0 以后,PHP 中也能够使用 const 关键字来声明常量了,一个常量一旦被定义,就不能再改变或者取消定义 2、常量只能包含标量数据( boolean , integer , float 和 string )。可以定义 resource 常量,但应尽量避免,因为会造成不可预料的结果 3、可以简单的通过指定其名字来取得常量的值,与变量不同, 不应该 在常量前面加上 $ 符号。如果常量名是动态的,也可以用函数 constant() 来获取常量的值。用 get_defined_constants() 可以获得所有已定义的常量列表 Note: 常量和(全局)变量在不同的名字空间中。这意味着例如 TRUE 和 $TRUE 是不同的 常量和变量有如下不同 常量前面没有美元符号($); 常量只能用 define() 函数定义,而不能通过赋值语句; 常量可以不用理会变量的作用域而在任何地方定义和访问; 常量一旦定义就不能被重新定义或者取消定义; 常量的值只能是标量。 define vs const 1、define() 在执行期定义常量, 使用 const 关键字定义常量必须处于最顶端的作用区域,因为用此方法是在编译时定义的 , 这就意味着不能在函数内

汇编语言六大基础伪指令详解

跟風遠走 提交于 2020-01-27 18:07:58
六大伪指令(基础) 1、OFFSET 变量是数据的存放地,对变量最常见的操作是从变量中取出数据和把数据放人变量中。 实现这些操作有 直接法和间接法两种方法。 以该寄存器加方括号的形式指明是用寄存器中的内容作为偏移地址,操作数在相应的内存 把保留字OFFSET加在变量名字的前面,表示取该变量的偏移地址。 汇编程序把"OFFSET变量名"作为一个常量处理,而常量本身是没有类型的。 不论变量在定义时是什么类型,在它的名字前面加上OFFSET后就变成了一个常量。 但是,既然"OFFSET变量名"是用来取变量的偏移地址,而偏移地址是有可能超过255的,超过255时当然就不能把它送到字节型寄存器中。也就是说.在没有准确掌握某个变量的偏移地址时,不要想当然地认为它的偏移地址会小于255。 既然"OFFSET变量名"是常量,就可以参与常量的算术运算。 把一个变量的偏移地址取到某个基址或变址寄存器后,就可以用该寄存器间接寻址方式实现对变量的处理。 间接法在高级语言中有着广泛的应用,在C 语言中表现为指针及其相关处理。 2、SEG 无论按直接法还是间接法使用变量,都会涉及变量的段地址问题。在汇编语言程序中,使用变量需要把其所在段的段地址放在某个段寄存器中,一般是放在DS或ES中,取变量的段地址也有两种方法。一是用变量所在段的段名。另一种方法是用 SEC伪指令放在某变量的前面,表示取该变量所在段的段地址

虚拟机的共享文件夹设置

有些话、适合烂在心里 提交于 2020-01-27 04:30:10
文章目录 .c文件的编译和执行 共享文件夹 进阶 基本数据类型 内存占用和sizeof 全局变量 局部变量和全局变量的对比 常量 枚举常量 多文件 头文件 指针 指针与++-- .c文件的编译和执行 编译 gcc -o 生成文件名 .c文件名 gcc .c文件名 -o 生成文件名 使用-o选项就可以生成指定名称的可执行文件 gcc .c文件名 默认生成一个a.out的文件 执行 ./可执行文件 共享文件夹 一般使用Windows编辑源代码,使用Linux进行编译和执行,这时候就要进行交互 如何进行交互? 使用网络,smb服务器(现在不怎么常用) 使用共享文件夹 共享文件夹的创建 首先要安装增强功能 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ekFeqHfd-1577786732784)(en-resource://database/8838:1)] 安装总是无法发送虚拟光驱……到虚拟电脑? 这个时候要弹出光驱然后再次点击安装增强功能就OK了 如何弹出?(19的在没有虚拟光驱的图标,所以要这样做) [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-dnV2Vyp7-1577786732786)(en-resource://database/8840:1)] 那个移除虚拟盘就是,不过要先勾选上Ubuntu…

C++基础:变量和基本类型

前提是你 提交于 2020-01-26 05:09:51
基本内置类型 一、基本内置类型 C++定义了一套包括算术类型(arithmetic type) 和空类型(void) 在内的基本数据类型。其中算术类型包含了字符、整型数、布尔值和浮点数。空类型不对应具体的值,仅用于一些特殊的场合,例如最常见的是,当函数不返回任何值时使用空类型作为返回类型。 二、算术类型 算术类型分为两类:整型(integral type,包括字符和布尔类型在内)和浮点型。 带符号类型和无符号类型 除去布尔型和扩展的字符型之外,其他整型可以划分为带符号的(signed) 和无符号的(unsigned) 两种。带符号类型可以表示正数、负数或0,无符号类型则仅能表示大于等于0的值。 类型int、short、 long 和long long 都是带符号的,通过在这些类型名前添加unsigned就可以得到无符号类型,例如unsigned long。 类型unsigned int 可以缩写为unsigned。 与其他整型不同,字符型被分为了三种: char、signed char和unsigned char。特别需要注意的是:类型char和类型signed char并不一样。类型char实际上会表现为上述两种形式中的一种,具体是哪种由编译器决定。 建议:如何选择类型 和C语言一样,C++的设计准则之一也是尽可能地接近硬件。C++的算术类型必须满足各种硬件特质