给指针赋值可以是什么样的

图片说明这个里面c3是一个指针,可以给他赋字符串吗?如果可以那是不是说明字符串只是一个地址呢(的第一个字符的地址)

指针本身也是一个整型数据,可以赋予任何值,但指向有没有意义由程序员决定。直接将字符串赋予指针,编译器编译时会将字符串作为常量存储,并且将存储首地址赋予这个指针。所以可以给指针赋值字符串,但字符串不是一个地址。

字符串不是地址,只是一般我们要使用某个字符串的时候都是用它的地址表示他。那个c3是给他赋值了“you”这个字符串的地址。

“you”在这里是一个表达式,它的值就是它的首地址

  • 1. char*c3="you", 这句是首先在常量区开辟一个空间存放字符串常量“you”,然后c3这个指针存放着指向“you”的地址,但是字符串本身不是地址。
  • 1. char*c3="you", 这句是首先在常量区开辟一个空间存放字符串常量“you”,然后c3这个指针存放着指向“you”的地址,但是字符串本身不是地址。

指针只是存地址,可以指向任意数据,不过指针类型可以用于编译检查