c语言中指针加不加*有什么区别

 我来答
钮玉芬孛辰
2020-02-28 · TA获得超过3.7万个赞
知道大有可为答主
回答量:1.4万
采纳率:29%
帮助的人:950万
展开全部
基本上没有区别,c++仅仅只是在c语言的基础上增加了面向对象的概念,所有它又被称为是“带类的c”,因此,c++在指针操作上增加了指向对象的指针(引用);但究其本质而言,指针仍然是内存中的地址,这一点没有改变.
丶自由丨落体
2018-09-10
知道答主
回答量:21
采纳率:0%
帮助的人:5.3万
展开全部

刚开始学习C,同样有这个疑问,在网上查了一下,没有什么让人一目了然的解释。

用int *x作为例子。

既然int *x 只是定义了一个内存空间,保存一个内存地址,那么普通的int x应该也可以做到。

int num = 5;
int *x = # 
int x1 = #

x 和 x1 同样保存的是 num 的内存地址,但是只有用了*声明的指针能够通过 *x 来访问 num .

printf("%p , %p", x ,x1)  // 这一行会输出两个一样的内存地址。
printf("%d" , *x )  // 成立,不报错,正常输出 5。
printf("%d" , *x1 )  // 不成立,编译器会报错,‘*’的操作数必须是指针。

第二个变量名使用x1的原因是,当你尝试 printf 输出的时候,指针 *x 会强行覆盖普通的 x 。

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
帐号已注销
2018-12-16 · TA获得超过178个赞
知道答主
回答量:11
采纳率:0%
帮助的人:2万
展开全部
不加*取地址,加了*取地址里的内容
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
HAY暗夜
2015-05-25 · TA获得超过833个赞
知道小有建树答主
回答量:1033
采纳率:50%
帮助的人:487万
展开全部
不加就不是指针就像[]是定义数组的。这是一种语法规则
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
军昊韦0el95b
推荐于2018-03-13 · TA获得超过624个赞
知道小有建树答主
回答量:443
采纳率:50%
帮助的人:384万
展开全部
比如 int a=5; int *p =&a; p就是5的地址 *p就是p地址上的内容5
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(7)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式