问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

c语言 *p跟p什么区别啊

发布网友 发布时间:2022-04-24 05:21

我来回答

4个回答

热心网友 时间:2023-10-31 11:31

int a[10]; *a=a[0], a=&a[0]; 同理*p 就是p指针变量中的内容,这都是(逻辑代码)C代码的一种表示而已。
给你个例子:

注:这里指的通用寄存器有eax,ebx,ecx,edx,ebp,esp,esi,edi
dword ptr:告诉处理器,安装双字,即16X2位bit处理
mov:方向 A <- B
lea: load execute address EA指的是执行时,分配的内存地址
[] : 取寄存器标识出的内存块中的内容

1:
2: int main(){
00401010 push ebp // 内存分配
00401011 mov ebp,esp
00401013 sub esp,70h
00401016 push ebx
00401017 push esi
00401018 push edi
00401019 lea edi,[ebp-70h] // 初始化
0040101C mov ecx,1Ch
00401021 mov eax,0CCCCCCCCh
00401026 rep stos dword ptr [edi]
3:////////////////////////////////////////////下面是关键
4: int array[10];
5: int* p = array;
00401028 lea eax,[ebp-28h] // 取数组变量内存空间地址,值存入eax寄存器
0040102B mov dword ptr [ebp-2Ch],eax // eax寄存器值接着转存到 p指针变量内存空间
6: int b = *p;
0040102E mov ecx,dword ptr [ebp-2Ch] // 取p指针变量内存空间地址,放入一个空闲的ecx寄存器
00401031 mov edx,dword ptr [ecx] // *p,即把ecx,或者是说p指针所指的内容取出,放到edx里面。
00401033 mov dword ptr [ebp-30h],edx // 把edx里面的东西,就是所谓的*p放到b变量空间里面。
7:
8: return 0;
00401036 xor eax,eax// 异或掉使用过的传值寄存器,设置错误码为0.
9: }///////////////////////////////////////收工
00401038 pop edi
00401039 pop esi
0040103A pop ebx
0040103B mov esp,ebp
0040103D pop ebp
0040103E ret

热心网友 时间:2023-10-31 11:31

对初学者来说,主要是分辨*号出现的位置,下面举例说明。
int i=2;
int *p=&i; //出现在定义中,表示类型;
int *q; //出现在定义中,表示类型;
q=&i; //同样是将&i赋给指针,但是这儿不需要*号。
*q=5; //相当于i=5,这儿的*是在使用中,表示对指针所指的对象操作。

热心网友 时间:2023-10-31 11:32

举例:
int a = 3; ///a是一个整型变量,值为3
int *p = &a;// p是一个指针,指向a的地址

说p,就是指针,
*p 是指针指向的内容,即a地址中的内容
实际上*p 和a 这个应该是一个意思了

热心网友 时间:2023-10-31 11:31

int a[10]; *a=a[0], a=&a[0]; 同理*p 就是p指针变量中的内容,这都是(逻辑代码)C代码的一种表示而已。
给你个例子:

注:这里指的通用寄存器有eax,ebx,ecx,edx,ebp,esp,esi,edi
dword ptr:告诉处理器,安装双字,即16X2位bit处理
mov:方向 A <- B
lea: load execute address EA指的是执行时,分配的内存地址
[] : 取寄存器标识出的内存块中的内容

1:
2: int main(){
00401010 push ebp // 内存分配
00401011 mov ebp,esp
00401013 sub esp,70h
00401016 push ebx
00401017 push esi
00401018 push edi
00401019 lea edi,[ebp-70h] // 初始化
0040101C mov ecx,1Ch
00401021 mov eax,0CCCCCCCCh
00401026 rep stos dword ptr [edi]
3:////////////////////////////////////////////下面是关键
4: int array[10];
5: int* p = array;
00401028 lea eax,[ebp-28h] // 取数组变量内存空间地址,值存入eax寄存器
0040102B mov dword ptr [ebp-2Ch],eax // eax寄存器值接着转存到 p指针变量内存空间
6: int b = *p;
0040102E mov ecx,dword ptr [ebp-2Ch] // 取p指针变量内存空间地址,放入一个空闲的ecx寄存器
00401031 mov edx,dword ptr [ecx] // *p,即把ecx,或者是说p指针所指的内容取出,放到edx里面。
00401033 mov dword ptr [ebp-30h],edx // 把edx里面的东西,就是所谓的*p放到b变量空间里面。
7:
8: return 0;
00401036 xor eax,eax// 异或掉使用过的传值寄存器,设置错误码为0.
9: }///////////////////////////////////////收工
00401038 pop edi
00401039 pop esi
0040103A pop ebx
0040103B mov esp,ebp
0040103D pop ebp
0040103E ret

热心网友 时间:2023-10-31 11:31

对初学者来说,主要是分辨*号出现的位置,下面举例说明。
int i=2;
int *p=&i; //出现在定义中,表示类型;
int *q; //出现在定义中,表示类型;
q=&i; //同样是将&i赋给指针,但是这儿不需要*号。
*q=5; //相当于i=5,这儿的*是在使用中,表示对指针所指的对象操作。

热心网友 时间:2023-10-31 11:32

举例:
int a = 3; ///a是一个整型变量,值为3
int *p = &a;// p是一个指针,指向a的地址

说p,就是指针,
*p 是指针指向的内容,即a地址中的内容
实际上*p 和a 这个应该是一个意思了

热心网友 时间:2023-10-31 11:32

*p是指针,p只是个变量

热心网友 时间:2023-10-31 11:32

*p是指针,p只是个变量

热心网友 时间:2023-10-31 11:31

int a[10]; *a=a[0], a=&a[0]; 同理*p 就是p指针变量中的内容,这都是(逻辑代码)C代码的一种表示而已。
给你个例子:

注:这里指的通用寄存器有eax,ebx,ecx,edx,ebp,esp,esi,edi
dword ptr:告诉处理器,安装双字,即16X2位bit处理
mov:方向 A <- B
lea: load execute address EA指的是执行时,分配的内存地址
[] : 取寄存器标识出的内存块中的内容

1:
2: int main(){
00401010 push ebp // 内存分配
00401011 mov ebp,esp
00401013 sub esp,70h
00401016 push ebx
00401017 push esi
00401018 push edi
00401019 lea edi,[ebp-70h] // 初始化
0040101C mov ecx,1Ch
00401021 mov eax,0CCCCCCCCh
00401026 rep stos dword ptr [edi]
3:////////////////////////////////////////////下面是关键
4: int array[10];
5: int* p = array;
00401028 lea eax,[ebp-28h] // 取数组变量内存空间地址,值存入eax寄存器
0040102B mov dword ptr [ebp-2Ch],eax // eax寄存器值接着转存到 p指针变量内存空间
6: int b = *p;
0040102E mov ecx,dword ptr [ebp-2Ch] // 取p指针变量内存空间地址,放入一个空闲的ecx寄存器
00401031 mov edx,dword ptr [ecx] // *p,即把ecx,或者是说p指针所指的内容取出,放到edx里面。
00401033 mov dword ptr [ebp-30h],edx // 把edx里面的东西,就是所谓的*p放到b变量空间里面。
7:
8: return 0;
00401036 xor eax,eax// 异或掉使用过的传值寄存器,设置错误码为0.
9: }///////////////////////////////////////收工
00401038 pop edi
00401039 pop esi
0040103A pop ebx
0040103B mov esp,ebp
0040103D pop ebp
0040103E ret

热心网友 时间:2023-10-31 11:31

对初学者来说,主要是分辨*号出现的位置,下面举例说明。
int i=2;
int *p=&i; //出现在定义中,表示类型;
int *q; //出现在定义中,表示类型;
q=&i; //同样是将&i赋给指针,但是这儿不需要*号。
*q=5; //相当于i=5,这儿的*是在使用中,表示对指针所指的对象操作。

热心网友 时间:2023-10-31 11:32

举例:
int a = 3; ///a是一个整型变量,值为3
int *p = &a;// p是一个指针,指向a的地址

说p,就是指针,
*p 是指针指向的内容,即a地址中的内容
实际上*p 和a 这个应该是一个意思了

热心网友 时间:2023-10-31 11:32

*p是指针,p只是个变量
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
如何在手机百度上删除对话记录? 结核病是什么样的疾病? 曹丕17岁得了肺痨,明知自己命不长久,还要强争王位,是不是很自私呢?_百... 古代小说常出现的病名 急求一篇"生活小窍门"(500字)的作文 至今最有什么小妙招 健康的戒烟方法 笔记本电池锁死是什么原因引起的? 黑龙江债权转让合同纠纷该怎样取证 安徽债权转让合同纠纷应该怎么样取证 互联网创业项目是真的吗? 网络创业培训是不是骗人的?网络创业是不是能赚钱? 物质的密度 跟P差不多的符号怎么念啊 互联网上骗子为什么那么多? 指针p p++和++p、p--和--p分别有什么区别??? 和p发音一样的单词有哪些 互联网创业靠谱吗? 什么是跟p虫? 互联网创业是传销吗 t跟p分别什么意思? 互联网创业:那投资人的钱就这么好骗吗 互联网创业是真的吗? 互联网创业是真是假? 互联网创业 是真的假的?? 互联网+创业微商又是一个骗局吗 互联网创业,是骗人的吗? 如何正确的揭露一个互联网创业骗子? 为什么互联网创业者都爱说谎 对创业者的忠告 怎么查询财产是否被保全 如何查询自己的财产是否被法院保全,在哪个部门查 网络创业是否真实? 那个字 跟p很像,怎么读啊??? 渐江1700手机创业互联网平台是骗局吗 c语言中,p.和p-&gt;有什么区别 网络创业项目是骗人的吗? 互联网创业都有什么坑?如何避免? 笔记本CPU,T系列跟P系列有什么区别,同型号哪个好 C语言 *p 和p的区别? 请问在C语言中++P和P++有何区别? ++p和p++的区别是什么 p&#39;和p分别怎么读 床垫是弹簧的好还是乳胶好,还是棕垫好 乳胶床垫好,还是棕床垫好 2022年法考时间延期了吗 22年平顶山主观题司法考试时间 网络创业是不是真的能赚钱?会不会有很多是骗人的? 网上那些创业项目是骗人的还是真的 互联网创业陷阱都有哪些? 血泪教训,互联网创业最容易掉这几个坑 互联网创业有哪些坑