C语言中的指针问题

2025-05-13 08:51:11
推荐回答(4个)
回答(1):

这样的"xxxx"应该叫做字符串常量,是存储在常量区域的,所以不应该修改它。
char a[]="don't know"
是定义了一个数组,数组内的数据复制了字符串的内容。
char *a="don't know"
第二种编译的时候就应该给你警告了,不能用非常量指针指向一个常量,应该是这样
const char *a="don't know"
所以不能通过指针改变它。

回答(2):

那是因为将字符串常量直接赋予数组与将指针指向字符串常量这二者还是有区别的将字符串赋予数组时这个字符串可以被修改,而将指针指向字符串时这个字符串是可读的

回答(3):

*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在内存的地址

回答(4):

我怀疑是
int
*p
=
&x;
如果这样,就是把
x
的地址赋给p
(x是数,但
&x
是x的地址)
如果是
*p
=
&x;
就是把
x
的地址放入到
p
指向的内存里面去,不是赋给p,而是赋给p指向的变量