c语言中指针加不加*有什么区别
展开全部
刚开始学习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 。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
不加*取地址,加了*取地址里的内容
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
不加就不是指针就像[]是定义数组的。这是一种语法规则
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
比如 int a=5; int *p =&a; p就是5的地址 *p就是p地址上的内容5
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询