C语言 *i是什么意思?

st(char *s)

指针类型。char *s代表定义一个char类型的指针s,它指向一个char类型的数据,即指向一块内存单元,其中存放的是一个字符型的数据。上面的例子也说明指针内存放的是其指向的内存单元的地址,而不是数据本身。
如果你不理解或者没有接触过指针,建议你翻阅相应的C语言教材,上面有详细说明。追问

那可以直接定义一个*i么?

追答

不可以,指针必须要定义它指向的数据类型,作为指针的数据类型。

如int *i;
定义一个整型指针i。此时可以用*i表示指针i所指内存单元的内容,如*i=5代表把指针i所指单元的值赋值5。而i本身代表一个地址,如i=&a,代表把变量a的地址赋给i

追问

指针是指向内存单元意思是不赋值不占用内存么?直接定义i即使不赋值也占用内存?

追答

指针被定义后需要初始化,也就是分配相应的内存空间,才能够使用。而变量在定义时就分配了相应内存空间,赋值时直接向分配的内存内写入数据

追问

也就是说定义的时候指针不占用内存,当赋值的时候就会占用了。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2015-02-06
指针。st(char *s) s是一个指向char型变量的指针
第2个回答  2020-01-13
相似回答