C语言中,*p=9和int * p=9有什么区别,两者分别是什么意思 5

 我来答
cdyzxy
2018-08-14 · TA获得超过2.1万个赞
知道大有可为答主
回答量:1.4万
采纳率:85%
帮助的人:3745万
展开全部

p是整型数据指针,可以存放一个地址指向一个整型数据存放区

*p=9;的前提是,变量p已经存放一个有效地址,这个地址可以存放整型数据,这句话的功能就是,令这个地址指向的存储区中存放整型数据9

int *p=9;相当于int *p; p=9;意思是给变量p赋值,赋值的是一个地址,这个地址是9,因此可存放数据的区域地址为9,其中可存放任意整数。

忙碌小學生
2018-08-13 · TA获得超过229个赞
知道小有建树答主
回答量:156
采纳率:64%
帮助的人:52.1万
展开全部
int* p=9从语法上来说是错误的,这是一个声明变量的语句,生命的变量为指针变量,指针变量的内容为地址,其他的变量的地址
9不是地址
*p=9;p已经被声明后,*号值的是地址的值
比如p内存有一个地址,这个地址的内容为123
那么*p就是123,或者用*p=9来改变这个123,变成9
你可以这样理解 int* 才是一种变量类型,是指针变量的类型,*和p之间用空格隔开
p是指针变量的内容,存着地址
*p是这个地址存储的内容
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
White_MouseYBZ
2018-08-13 · TA获得超过4万个赞
知道大有可为答主
回答量:2.1万
采纳率:82%
帮助的人:6647万
展开全部
  1. *p=9;——如果p是已经声明确定了指向的有效指针,则它的意义是将常数9赋给p指向的目标,否则是错误表达式。

  2. int * p=9;——这是错误表达式,编译都不会过的。因为指针不能用非0常数初始化。

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友c3f1866a6e1
2019-03-07 · TA获得超过3790个赞
知道大有可为答主
回答量:3103
采纳率:31%
帮助的人:465万
展开全部
这就是脑筋急转弯题目
*p(int
*p)
一个返回指针的函数p,形参是一个int型指针
(*p)(int
*p)
一个指向函数的指针p,所指向的函数的形参为int型指针
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
户哲茂5B
2018-08-16 · TA获得超过817个赞
知道小有建树答主
回答量:781
采纳率:59%
帮助的人:134万
展开全部
int *p=9;
转化一下就是
int *p;
p=9;
//这个9就是地址变量了
而*p = 9;的9就是一个普通变量的值
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式