您的位置:

为什么c语言可以给字符指针赋值,直接给指针赋值字符串可以吗

本文目录一览:

C语言字符串指针为什么能赋值

这个"abcd"在代码段中,若作为右值,返回其首地址。也就是在代码段中的地址。

关于代码段,如果不理解,我相信楼主没学过汇编,可以百度一下代码段的百科,比我说的更清楚

这么说吧,你写的代码,在运行的时候会被读入内存,内存里面必然有一段"abcd"这样的字符串,那么它的首地址就被当作这个字符串作为右值的返回值了。

c语言 字符型指针,指针不是只可以赋值地址的吗,为什么可以赋值字符串?

指针赋值字符串只能在定义指针时同步完成,此时会首先找个地方存下字符串,然后把首地址赋值给这个指针变量。

C语言中可以给指针变量赋值常数吗?

C语言中可以给指针变量赋值常数,赋值方法为:

1、首先打开Microsoft Visual C++软件,单击“文件”菜单-“新建”,新建一个文件,文件名后缀为.c。

2、新建好文件后,输入如下内容。

3、然后我们在{  }之间输入函数的内容,我们先定义变量c1,变量的类型为char,字符型。

4、然后,我们用printf语句进行输出。

5、当内容输入好后,我们点击图中工具按钮,对程序进行检测,如果没有错误,会得到下图所示效果(红线画出)。

6、检测到没有错误后,点击运行(红色感叹号),弹出的黑色窗口中为最终结果,可以看到大写字母“A”显示在上面。

在C语言中能否直接给指针指向的数据赋值?为什么?

肯定能。

但你编写的:int

*p;*p=7;这样的程序不对。因为“能直接给指针指向的数据”赋值,而你编写的小程序里的p还没有指向,所以不能赋值;

这个指针叫“悬浮指针”,也叫野指针,它不能被赋值的。需要这样编写才可以:int

a,*p=a;*p=7;

C语言中,为什么字符串可以赋值给字符指针变量

要理解

你要知道

字符串

干什么了

双引号

做了3件事

1.申请了空间,存放了字符串

2.

在字符串尾加上了'/0'

3.返回地址

你这里就是

返回的地址

赋值给了

p

希望采纳~~~~~~~~~~~~~~~~

C语言字符串指针为什么能赋值?

char *p是定义一个指针,“abcd”是存储在rodata段的,指针指向“abcd”,并不是赋值。而且这种定义本身有问题,应该加const,因为*p指向rodata段,内容不能改变,如果没加const的情况下,若再定义p[0] = ‘c’;此时编译通过,但执行程序时就会出错。所以一般在定义字符串指针时加上const,遇到p[0] = ‘c’;的情况下,在编译时就会报错,以便程序员修改!