吐司酸奶
前者定义P为常量,即只能单向赋值一次,P++展开为p=p+1,重复赋值给常量,出错,后者P为地址变量,地址变量是指向该变量的存储地址值如:4B3F6A,不能赋给一个字符值(字符相当于ascii表中对应的整数)如强制赋值,会把原地址变量P变为一个两位数的整数,造成地址指针溢出。而p++,则表示把该地址变量向下一个存储单元移动一位,如4B3F6A到4B3F6B.所以合法。
素雪清芳
对C不怎么了解。指针是一种数据类型,它存储的值必须是内存地址,一个指针变量可以进行加减运算。它可以更高速的对内存地址进行操作,提高程序运行效率。所有的数组变量名就是一个指针,如数组 num[6],则num里存储的就是一个内存地址,并且是改数组的首地址,num == num[0], num++ == num[1]. 以此类推。指针可以进行运算,使程序更加灵活,但也有可能造成数据溢出,使程序崩溃。所以对于C的学习者来说,指针是很难掌握的一门功课。
jason19203
指针是一个特殊的变量,它里面存储的数值被解释成为内存中的一个地址。要弄清一个指针的含义,需要搞清指针的四方面的内容:指针的类型、指针所指向的类型、指针的值或者叫指针所指向的内存区,还有指针本身所占据的内存区。让我们分别说明。★指针的类型从语法的角度看,你只要把指针声明语句里的指针名字去掉,剩下的部分就是这个指针的类型。这是指针本身所具有的类型。让我们看看下例中各个指针的类型:1.int ptr // 指针的类型是int2.char ptr //指针的类型是char3.int ptr //指针的类型是int4.int ptr 3 //指针的类型是int 35.int ptr 4 //指针的类型是int 4怎么样?找出指针的类型的方法是不是很简单?★指针所指向的类型当你通过指针来访问指针所指向的内存区时,指针所指向的类型决定了编译器将把那片内存区里的内容当做什么来看待。从语法上看,你只需把指针声明语句中的指针名字和名字左边的指针声明符�去掉,剩下的就是指针所指向的类型。例如:1.int ptr;//指针所指向的类型是int2.char ptr;//指针所指向的类型是char3.int ptr;//指针所指向的类型是int4.int(ptr)[3];//指针所指向的类型是int()[3]5.int(ptr)[4];//指针所指向的类型是int()[4]。在指针的算术运算中,指针所指向的类型有很大的作用。指针的类型(即指针本身的类型)和指针所指向的类型是两个概念。当你对C语言越来越熟悉时,你会发现,把与指针搅和在一起的“类型”这个概念分成“指针的类型”和“指针所指向的类型”两部分来理解,是精通指针的关键点之一。★指针的值指针的值代表指针所指向的内存区或地址,指针的值是指针本身存储的数值,这个值将被编译器当作一个地址,而不是一个一般的数值。在32位程序里,所有类型的指针的值都是一个32位整数。指针所指向的内存区就是从指针的值所代表的那个内存地址开始,长度为sizeof(指针所指向的类型)的一片内存区。以后,我们说一个指针的值是XX,就相当于说该指针指向了以XX为首地址的一片内存区域;我们说一个指针指向了某块内存区域,就相当于说该指针的值是这块内存区域的首地址
cathyying850
我告诉你应该怎么看变量声明吧,看变量声明的时候应该从右至左看,以char *const *p为例:先看从右至左第一个符号*,这表明变量p是指针,再看第2个符号const,它修饰的是*p,*p表示p指向的内容,所以,p指向的内容是常量,下一个符号是*,这就表示该常量为指针,然后是char,就表示指向的内容是char
xiaowanziji
AH&AL=AX(accumulator):累加寄存器 BH&BL=BX(base):基址寄存器 CH&CL=CX(count):计数寄存器 DH&DL=DX(data):数据寄存器 SP(Stack Pointer):堆栈指针寄存器 BP(Base Pointer):基址指针寄存器 SI(Source Index):源变址寄存器 DI(Destination Index):目的变址寄存器 IP(Instruction Pointer):指令指针寄存器 CS(Code Segment)代码段寄存器 DS(Data Segment):数据段寄存器 SS(Stack Segment):堆栈段寄存器 ES(Extra Segment):附加段寄存器 OF overflow flag 溢出标志 操作数超出机器能表示的范围表示溢出,溢出时为1. SF sign Flag 符号标志 记录运算结果的符号,结果负时为1. ZF zero flag 零标志 运算结果等于0时为1,否则为0. CF carry flag 进位标志 最高有效位产生进位时为1,否则为0. AF auxiliary carry flag 辅助进位标志 运算时,第3位向第4位产生进位时为1,否则为0. PF parity flag 奇偶标志 运算结果操作数位为1的个数为偶数个时为1,否则为0. DF direcion flag 方向标志 用于串处理.DF=1时,每次操作后使SI和DI减小.DF=0时则增大. IF interrupt flag 中断标志 IF=1时,允许CPU响应可屏蔽中断,否则关闭中断. TF trap flag 陷阱标志 用于调试单步操作.