C语言指针如何使用
导读:本文共4001.5字符,通常情况下阅读需要13分钟。同时您也可以点击右侧朗读,来听本文内容。按键盘←(左) →(右) 方向键可以翻页。
摘要: 指针概述C语言中指针也可以认为是一种类型,不同于数值型和字符型的类型。推演过去指针变量也就是相当于不同的变量类型,不同于数值变量、字符型变量、字符串变量。指针变量两种类型:自身类型和指向的类型自身类型:将变量名去掉,剩下的就是指针变量类型。指向类型:将变量名和离它最近的一个*去掉,剩下的类型就是指针指向的类型intnum=10;int*p=NULL;p=&a... ...
目录
(为您整理了一些要点),点击可以直达。C语言中指针也可以认为是一种类型,不同于数值型和字符型的类型。推演过去指针变量也就是相当于不同的变量类型,不同于数值变量、字符型变量、字符串变量。
指针变量两种类型:自身类型和指向的类型
自身类型:将变量名去掉,剩下的就是指针变量类型。
指向类型:将变量名和离它最近的一个*去掉,剩下的类型就是指针指向的类型
如代码中 指针变量的自身类型是 int * 型;指向类型是 int 型。
自身类型是指变量p本身的类型,变量p中放的是地址内容,地址指向的是放整型的数据,为什么需要说是指向整型的地址呢?因为不同类型数据占据的不同大小的一整块内存,整型是一个占4字节大小的一个整体内存,字符型是一个占2个字节大小的一个整体内存,编译器不会把它们拆分开。如定义了一个int型变量,它的地址是0x7fffffff00,紧接着马上定义一个char型变量,他的地址就直接到了0x7fffffff04。从0x7fffffff00 ~ 0x7fffffff04中间不会再被分开了放int型数据,0x7fffffff04 ~ 0x7fffffff06中间不分开放char型数据。
所以 自身类型 是基本类型 + *组合而成,虽然里面放的都是地址,但是地址指向的一整块内容是有区别的。
指向类型 是指 指针变量中放置的地址是指向的内容类型。
这是一个二级指针,指向的类型是int*,说明变量pp指向的是指针类型的数据。
代码1
代码2
数值型指针: int* p;
如:
字符型指针可以分为指针指向的是单字符还是字符数组两种
字符型指针: char* p;
这里需要注意需要用 占位符 %c 去承接内容(或者说显示内容)
字符型指针:char* p;
这里需要注意字符数组末尾需要加‘\0’字符表示字符数组结束,或者编译器自己会自动加上,所以在定义字符数组长度时需要加+1。
注意 字符数组名既可以表示地址也可以表示整个字符数组的内容,而不是第一个字符。相应的指针也是整个字符数组的内容。
以上两行代码可以编译过但是不能显示内容,需要用占位符%s去承接整个字符数组内容。
字符型指针:char* p;
如代码中结果显示所示,字符串数组名即是地址,同时也是数组内容,根据占位符的不同显示不同内容,占位符为%s时显示字符串,%#lx显示地址。同样的对于赋值给的指针变量也具有同样的功能。
但是如果这里
C语言指针如何使用的详细内容,希望对您有所帮助,信息来源于网络。