本文目录一览:
- 1、C语言字符串指针为什么能赋值
- 2、c语言 字符型指针,指针不是只可以赋值地址的吗,为什么可以赋值字符串?
- 3、C语言中可以给指针变量赋值常数吗?
- 4、在C语言中能否直接给指针指向的数据赋值?为什么?
- 5、C语言中,为什么字符串可以赋值给字符指针变量
- 6、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’;的情况下,在编译时就会报错,以便程序员修改!