int *指针变量声明定义

int*p=NULL;//空指针或inta=5;int*p=a;//定义指针变量a的指针1、这里int*p表示声明一个指向int的指针变量p,并且其指向的内容是NULL或... int *p=NULL;//空指针
或int a=5;
int *p=a;//定义指针变量a的指针

1、这里int *p表示声明一个指向int的指针变量p,并且其指向的内容是NULL或5(即a的值),是这样么?就是说指向int的指针变量p里可以放空指针或是一个整型值?
2、但int *声明的指针变量里面放的不应该是一个指针么?那应该是int *p = &5;?
谢谢指点!
改为:
int a;
int *p;
p = &a;
*p = 5;
就可以了?
展开
 我来答
匿名用户
推荐于2016-11-17
展开全部
  1、定义指针变量的一般形式如下:
  类型名*指针变量名1,*指针变量名2,... *指针变量名n ;
  2、 空指针
  空指针是一个特殊的指针,它的值是0,C语言中用符号常量NULL(在stdio.h中定义)表示这个空值,并保证这个值不会是任何变量的地址。空指针对任何指针类型赋值都是合法的。一个指针变量具有空指针值表示当前它没有指向任何有意义的东西。
  3、 void指针
  (void *)类型的指针叫通用指针,可以指向任何的变量,C语言允许直接把任何变量的地址作为指针赋给通用指针。但是有一点需要注意void*不能指向由const修饰的变量,eg const int test; void * ptv; ptv = &test;第三句是非法的,只有将ptv申明为const void * ptv;上述第三句(ptv = &test),才是合法的。
fso0qpty52
2010-11-09 · TA获得超过346个赞
知道小有建树答主
回答量:267
采纳率:0%
帮助的人:258万
展开全部
1.可以这么说。int *p;你不赋址也可以。不是“放”,而是“指向一个地址”。
2int *p=&5;//是错误的。&符号是取“空间地址”的意思。
p=&a;//这样可以,表示取a的空间地址赋给指针p。
//字符“5”本身是值,没有空间没有地址。
int a=5;//表示申请一段空间,空间中存上“5”这个值!!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友1e3176a03
推荐于2017-12-16 · TA获得超过2637个赞
知道小有建树答主
回答量:1144
采纳率:100%
帮助的人:1488万
展开全部
int *p=a;//定义指针变量a的指针
这句是错的,p是指针,只能指向地址,可以这样int *p=&a;//定义指针变量p指向a的地址

int *p = &5;不能这么写,不能对常数取地址
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
帅得有点坏
2010-11-09 · TA获得超过1149个赞
知道小有建树答主
回答量:463
采纳率:0%
帮助的人:477万
展开全部
第一句话错,
原因是:int的指针变量p里可以放空指针或是一个整型值,int
型的指针就只能存放int,这里的NULL意思是申明p指向空,不是存放空指针。
第二局也不对
int *声明的指针变量里面放的不应该是一个指针么?
里面存放的是一个地址,他指向一个int
所以应该p=&a;
你的这种p=&5的写法是不对的,只能记录下变量的地址,
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
feitianwohong
2010-11-09 · 超过21用户采纳过TA的回答
知道答主
回答量:81
采纳率:100%
帮助的人:37.7万
展开全部
p中存地址 *p指 p地址指向的内容 a 直接就是值
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式