c语言 指针赋值指针,c语言 指针赋值指针是什么

kodinid 8 0

大家好,今天小编关注到一个比较意思的话题,就是关于c语言 指针赋值指针的问题,于是小编就整理了3个相关介绍c语言 指针赋值指针的解答,让我们一起看看吧。

  1. c语言中只能给指针变量赋值什么和什么?
  2. c语言为什么字符串赋值给指针是常量?
  3. c语言中字符串怎么赋值?

c语言中只能给指针变量赋值什么和什么?

指针变量只能赋值一个内存或者空指针。
因为指针变量本质上是存储内存地址的变量,所以只能将一个内存地址赋给指针变量来指向某个变量或者对象
而空指针则表示指向空地址,即不指向任何对象。
此外,还需要注意指针变量在未初始化时应该先赋值为nullptr,以避免指向未知的内存地址。

c语言为什么字符串赋值给指针是常量

在C语言中,字符串字面量(如"hello world")被视为常量。当字符串字面量赋值给指针时,指针指向的是字符串字面量在内存中的地址,而这个地址是常量,不可被修改。因此,将字符串赋值给指针会使指针成为指向常量的指针,即不能通过指针修改字符串的。若需要修改字符串内容,应使用字符数组而非指向常量的指针。

c语言 指针赋值指针,c语言 指针赋值指针是什么-第1张图片-安济编程网
图片来源网络,侵删)

c语言中字符串怎么赋值?

C语言中,字符串的赋值主要有两种方法,第一种是通过指针的方式直接赋值,第二种是通过数组直接赋值。

1、指针式赋值。

过程序的运行情况,可以知道:char *p = "hello";这种字符串的赋值方式是完全没有问题的。要理解这种赋值方式,首先得理解双引号(特别注意:这个是双引号,不要赋值的时候给弄了个单引号)在这个语句中做了什么工作。双引号主要做了3个工作,分别是:

c语言 指针赋值指针,c语言 指针赋值指针是什么-第2张图片-安济编程网
(图片来源网络,侵删)

(1)申请了空间(在常量区),存放了字符串。

(2)在字符串尾加上了“\0”。

(3)返回地址。

c语言 指针赋值指针,c语言 指针赋值指针是什么-第3张图片-安济编程网
(图片来源网络,侵删)

这里所返回的地址就赋值给了char *类型的指针变量p。

2、通过字符数组直接把字符串赋值。

到此,以上就是小编对于c语言 指针赋值指针的问题就介绍到这了,希望介绍关于c语言 指针赋值指针的3点解答对大家有用。

标签: 赋值 指针 字符串