指针类型,是编程语言中的一个对象,利用地址,它的值直接指向存在电脑存储器中另一个地方的值。由于通过地址能找到所需的变量单元,可以说,地址指向该变量单元。因此,将地址形象化的称为“指针”。意思是通过它能找到以它为地址的内存单元。
在高级语言中,指针有效地取代了在低级语言,如汇编语言与机器码,直接使用通用暂存器的地方,但它可能只适用于合法地址之中。指针参考了存储器中某个地址,通过被称为反参考指针的动作,可以取出在那个地址中存储的值。
答案是对的。
A* pa;定义的是指向类A的对象的指针,不是指向类A的成员函数的指针。如:
class A
{
public:
void f()
{
}
};
A a1;
A *pa=&a1;
void (A::*pf)(void)=&A::f;
//都是调用a1的f
a1.f();
(*pa).f();
pa->f();
(a1.*pf)();
(pa->*pf)();
(*pa.*pf)();
s 是一个变量。
一个变量,通常有两个部分含义,一个是变量的类型,其次,才是变量的值。从某种程度上讲,变量的类型,要比变量的值还重要。变量类型,决定了变量的处理方式,比如,如何存储,如何处理。
char * s是一个指针变量,可以指向char类型变量的指针变量。这句话有这样几层含义。
首先,s是指针变量(重点:或者说变量s的类型是指针类型)。指针,说白了就是内存地址。所以,不管是指向何种类型的指针,指针应该(?)都是一样的。比如int * p; char *p; float *p; 这里的p都是指针变量。假设其中的内容是0x1234,这里的0x1234就是内存地址,或者说是指针。
指向char类型变量,就是说0x1234这个内存地址里面的内容,要按char类型来处理。同理如果是float *p = (float*)0x1234; 这里的0x1234地址的内容就要按浮点格式来处理。
code 是51编译器自己增加的一个关键字,不是标准C语言。51单片机内存结构比较特殊,有rom, ram之分,ram有 data,xdata之分,不同的内存使用不同的指令访问。现在问题来了,一个变量在内部ram中,只有8位地址,放在xdata中,有16位地址,放在rom中,也是有16位地址,16位rom地址显然与xdata地址的含义不同,所以通用指针实际上需要3字节表示,其中有一个字节表示地址类型。但这样做有点浪费存储空间,处理的时候也慢,要根据不同的地址类型采用不同的处理指令。加上code就可以限定指针指向的地址,比如char code * s; 就是说s只能指向rom地址,存储的时候用16位就行。
回到开头,s本身还是一个变量,它的类型是char code *决定了它的存储方式,处理方式。
其他的,uchar 一般是类型别名,找找上下文的有关定义。
&H,取地址,说白了是一个常数,比如0x1234,但这个常数是有类型的。
你不明白的是具体的用法!而不是含义!
倒数第一个,是一个函数指针直接用pfi=funcname;这句就可以指向一个函数,调用函数的时候就用pfi();
上面指向函数的指针你了解了吧,函数名本身就是地址,要看它的本质。比如数组,数组的名字比如a[10]中a就是一个地址,这就是它的本质!
倒数第二个,我把它变个形(其实还是一样的):int* pfi();这样你是不是就明白了?返回值是int*,名字叫pfi的这么一个函数!他和int,char,void声明方法不都是一样的?所以希望这个你懂了,好看下面。
正着数第四个不常用,但是你一看,加了个括号,很明显指向的类型char[]数组,这个只能吧指针名字写在中间,本来你是可以看懂的!但是把指针写在中间你就可能理解错,其实指针类型就是char[]不要想太多,灵活一点!
还有第三个,这个很明显,如果没加括号,那变形(星号在空格前面还是后面都一样)----char* acp[10];那你看,类型是不是char*?那么acp就是变量名,也就是说定义了一个指针,名字叫acp,但是!!!后面有方括号10,啥意思--这是一个很平凡的数组,不过数据类型是指针而已!!
啊啊啊好累啊,回答不易.......呃我要猝死了快救我....
赏我点积分,采纳!我就可以康复了!快我快.....
这个题目故意考察你会不会弄错a
他的声明其实写开了就是这样的
int *p[3];
int a[3];
因此p是一个指针数组,每个元素都是一个指向int的指针
a是一个int数组,每个元素都是一个int数
显然ABC左右类型都不匹配,只有D是正确的
本站内容仅供参考,不作为诊断及医疗依据,如有医疗需求,请务必前往正规医院就诊
祝由网所有文章及资料均为作者提供或网友推荐收集整理而来,仅供爱好者学习和研究使用,版权归原作者所有。
如本站内容有侵犯您的合法权益,请和我们取得联系,我们将立即改正或删除。
Copyright © 2022-2023 祝由师网 版权所有