C语言中的指针问题

字符指针变量是可以实现字符串的储存和运算的那么我下面的这俩种做法应该都是对的为什么图2中程序崩溃?... 字符指针变量是可以实现字符串的储存和运算的 那么我下面的这俩种做法应该都是对的 为什么图2中程序崩溃? 展开
 我来答
捣蒜大师Edison
2019-07-09 · TA获得超过2963个赞
知道大有可为答主
回答量:3825
采纳率:77%
帮助的人:1334万
展开全部
这样的"xxxx"应该叫做字符串常量,是存储在常量区域的,所以不应该修改它。
char a[]="don't know"
是定义了一个数组,数组内的数据复制了字符串的内容。
char *a="don't know"
第二种编译的时候就应该给你警告了,不能用非常量指针指向一个常量,应该是这样
const char *a="don't know"
所以不能通过指针改变它。
追问
谢谢
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友7895c30
2019-07-09 · TA获得超过163个赞
知道小有建树答主
回答量:387
采纳率:80%
帮助的人:77.4万
展开全部
那是因为将字符串常量直接赋予数组与将指针指向字符串常量这二者还是有区别的将字符串赋予数组时这个字符串可以被修改,而将指针指向字符串时这个字符串是可读的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
虢善问木
2019-11-18 · TA获得超过3794个赞
知道大有可为答主
回答量:3085
采纳率:30%
帮助的人:234万
展开全部
*p=&x
这是什么意思呀?
*p前面没类型的话。这个应是错的。
比如
int
*p=&x;这样才正确的。&这个是取地址符号。int
*p
这个P是指向int的指针。存放的是地址。
所以int
*p=&x;是把变量x的地址赋给p.
例子
int
x=5;
int
*p=&x;
*p=5;这个*p的值是5,p的值是x在内存的地址
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
利锦花赩
2020-04-19 · TA获得超过3885个赞
知道大有可为答主
回答量:3120
采纳率:30%
帮助的人:176万
展开全部
我怀疑是
int
*p
=
&x;
如果这样,就是把
x
的地址赋给p
(x是数,但
&x
是x的地址)
如果是
*p
=
&x;
就是把
x
的地址放入到
p
指向的内存里面去,不是赋给p,而是赋给p指向的变量
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式