问个问题
#include<stdio.h>void main()
{
int *p ,a;
p=a;
}
这个里面的p到底是什么 看不懂哟;
星P ,??
a,是个数组;
p=a; a 是啥没定义哟?? p指向a数组的头结点 对,a是指向是一个数组的第一个元素的指针,但是const,无法修改,p=a,是把a指针的值赋给p 架向青空 发表于 2015-1-31 14:52
p指向a数组的头结点
头结点是什么 int *p;说明p是一个指针
int a;说明a是一个数组
关键在于为什么 p = a;(即吧数组名赋值给指针)是可以的。
因为C语言中数组名常常转化(转化的意思就是原来数组不是指针,但又时候会转化为指针;就好像一个男性,他并不是女性;但在一定条件下他会“转化”为女性)为指针,这个指针就是指向数组首元素的。 数组名就是指向数组第一个元素的指针,p为一个指向int型变量的指针,p = a相当于将数组的第一个元素的地址赋值给p,p就指向了数组a的第一个元素 a是数组第一个元素(int型)地址 p是指针类型(C语言里专门用来存储int型变量地址的变量)懂了吗? aswyamato1989 发表于 2015-2-1 14:22
数组名就是指向数组第一个元素的指针,p为一个指向int型变量的指针,p = a相当于将数组的第一个元素的地址 ...
是不是说p=a;相当于p=a; 1048870116 发表于 2015-2-1 21:56
是不是说p=a;相当于p=a;
不是p=a,而是p=&a,即p指向a,p中存储的是a的地址。 aswyamato1989 发表于 2015-2-2 08:08
不是p=a,而是p=&a,即p指向a,p中存储的是a的地址。
知道了,谢谢 骚年,有眼光!你问的这个问题就是C语言的精髓,搞定它,就搞定C语言哈哈。 p时一个int型指针,p表示指针本身,*p表示p指向的数据。 自己挂od 看看
就是一个 局部变量
说白了 指针就是一个dword 长度的内存 p保存应该是a的地址 :lol:看看 指针啊
页:
[1]