C语言中的指针问题
字符指针变量是可以实现字符串的储存和运算的那么我下面的这俩种做法应该都是对的为什么图2中程序崩溃?...
字符指针变量是可以实现字符串的储存和运算的 那么我下面的这俩种做法应该都是对的 为什么图2中程序崩溃?
展开
4个回答
展开全部
这样的"xxxx"应该叫做字符串常量,是存储在常量区域的,所以不应该修改它。
char a[]="don't know"
是定义了一个数组,数组内的数据复制了字符串的内容。
char *a="don't know"
第二种编译的时候就应该给你警告了,不能用非常量指针指向一个常量,应该是这样
const char *a="don't know"
所以不能通过指针改变它。
char a[]="don't know"
是定义了一个数组,数组内的数据复制了字符串的内容。
char *a="don't know"
第二种编译的时候就应该给你警告了,不能用非常量指针指向一个常量,应该是这样
const char *a="don't know"
所以不能通过指针改变它。
追问
谢谢
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
那是因为将字符串常量直接赋予数组与将指针指向字符串常量这二者还是有区别的将字符串赋予数组时这个字符串可以被修改,而将指针指向字符串时这个字符串是可读的
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
*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在内存的地址
这是什么意思呀?
*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在内存的地址
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
我怀疑是
int
*p
=
&x;
如果这样,就是把
x
的地址赋给p
(x是数,但
&x
是x的地址)
如果是
*p
=
&x;
就是把
x
的地址放入到
p
指向的内存里面去,不是赋给p,而是赋给p指向的变量
int
*p
=
&x;
如果这样,就是把
x
的地址赋给p
(x是数,但
&x
是x的地址)
如果是
*p
=
&x;
就是把
x
的地址放入到
p
指向的内存里面去,不是赋给p,而是赋给p指向的变量
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询