一个指针,如果一开始没有给它进行初始化,直接给它赋值是错的吗?那如果一个指针数组,没有初始化可以直

一个指针,如果一开始没有给它进行初始化,直接给它赋值是错的吗?那如果一个指针数组,没有初始化可以直接调用吗?

一个指针没有初始化,而且也没有被赋值(注意,赋值是指p=a,p是个指针,a是个变量)时,是不能取值的(*p),因为此时指针没有指向任何内存。一个指针数组,在定义时就给他分配了内存,当然可以直接给指针赋值了,但是取值(*p[5]),仍然是不行的。。。。总而言之,指针只有指向了实际的内存才能被取值(*p或*p[6])。。。。。纯手打,望采纳。。。。。追问

意思是指针数组没有初始化就可以调用吗?

追答

不知道你所说的调用是什么意思,如果是p[2]= 这样当然是可以的,但是*p[2]就不行

追问

追答

什么意思,没看懂。。。

追问

就是它定义的last first两个数组都没有初始化但直接调用了

追答

……他声明的貌似是字符数组吧,不是指针数组。。。。我估计你的意思是last和first在printf函数中使用,针对于last和first在此时,他们两确实是一个常量指针,但是他们已经初始化了。数组名可以看成指向数组首个元素的地址,这个元素在内存中是占有位置的,所以他们有实际指向的内存,当然可以直接调用了。

温馨提示:答案为网友推荐,仅供参考