1048870116 发表于 2015-1-31 14:26:27

问个问题

#include<stdio.h>
void main()
{
    int *p ,a;
    p=a;
}
这个里面的p到底是什么

haiouda 发表于 2015-1-31 14:29:21

看不懂哟;
星P ,??
a,是个数组;
p=a; a 是啥没定义哟??

架向青空 发表于 2015-1-31 14:52:15

p指向a数组的头结点

mhhnjuol 发表于 2015-1-31 16:08:05

对,a是指向是一个数组的第一个元素的指针,但是const,无法修改,p=a,是把a指针的值赋给p

1048870116 发表于 2015-1-31 21:27:54

架向青空 发表于 2015-1-31 14:52
p指向a数组的头结点

头结点是什么

仰望天上的光 发表于 2015-2-1 11:25:58

int *p;说明p是一个指针
int a;说明a是一个数组
关键在于为什么 p = a;(即吧数组名赋值给指针)是可以的。
因为C语言中数组名常常转化(转化的意思就是原来数组不是指针,但又时候会转化为指针;就好像一个男性,他并不是女性;但在一定条件下他会“转化”为女性)为指针,这个指针就是指向数组首元素的。

aswyamato1989 发表于 2015-2-1 14:22:34

数组名就是指向数组第一个元素的指针,p为一个指向int型变量的指针,p = a相当于将数组的第一个元素的地址赋值给p,p就指向了数组a的第一个元素

小海儿~ 发表于 2015-2-1 21:15:39

a是数组第一个元素(int型)地址   p是指针类型(C语言里专门用来存储int型变量地址的变量)懂了吗?

1048870116 发表于 2015-2-1 21:56:00

aswyamato1989 发表于 2015-2-1 14:22
数组名就是指向数组第一个元素的指针,p为一个指向int型变量的指针,p = a相当于将数组的第一个元素的地址 ...

是不是说p=a;相当于p=a;

aswyamato1989 发表于 2015-2-2 08:08:25

1048870116 发表于 2015-2-1 21:56
是不是说p=a;相当于p=a;

不是p=a,而是p=&a,即p指向a,p中存储的是a的地址。

1048870116 发表于 2015-2-2 13:15:00

aswyamato1989 发表于 2015-2-2 08:08
不是p=a,而是p=&a,即p指向a,p中存储的是a的地址。

知道了,谢谢

fusae_js 发表于 2015-2-2 17:46:44

骚年,有眼光!你问的这个问题就是C语言的精髓,搞定它,就搞定C语言哈哈。

methamphetamine 发表于 2015-2-2 22:48:26

p时一个int型指针,p表示指针本身,*p表示p指向的数据。

湛蓝蓝 发表于 2015-2-4 09:33:23

自己挂od 看看
就是一个 局部变量

说白了 指针就是一个dword 长度的内存

!@R键! 发表于 2015-2-4 11:45:20

p保存应该是a的地址

pynliu 发表于 2015-2-4 16:10:41

:lol:看看

牡丹花下死做鬼 发表于 2015-2-7 11:57:30

指针啊
页: [1]
查看完整版本: 问个问题