首页 > C > 指针 阅读:57,774

指针定义:变量,地址,类型(宽度)

< 上一页 存储变量的内存地址 指针声明 下一页 >

指针其实就是一个变量,和其他类型的变量一样。它与其他变量的不同就在于它的值是一个内存地址,指向内存的某一个地方。即指针是一种存放另一个变量的地址的变量。

 

比如:

int i =1;

int *p=&i;

 

首先定义了一个整型变量i,并初始化值为1。再定义了一个整型的指针p,它的值是i的地址。因此,指针p指向了i所在的内存,该段内存占4个字节。

因此指针含义可以分为3个方面来理解:

1,它是一个变量,所以也占用一定的内存空间(在X86上占用4个字节,X64上占用8个字节)

2,它的值是一个内存地址。这个地址可以是其它变量的地址。

3,它的地址指向的内存空间具有确定的长度。这是指针与地址的本质区别。如果只告诉你一个内存地址,你不会知道从这个地址开始的内存有多长。但如果告诉你一个指针,你会明确的知道从这个内存地址开始的内存有多长。因为指针都是有类型的。知道了指针的类型,就确定了所指向的内存地址对应的长度。

指针是C语言中的精华。指针其实就是一个变量,和其他类型的变量一样。在32位机器上,它是一个占用四字节的变量,它与其他变量的不同就在于它的值是一个内存地址,指向内存的某一个地方。即指针是一种存放另一个变量的地址的变量。

int main(void)

{

    int  i = 1;

    int *p = &i; // 指针p指向了i的地址

    *p += 1; // *pi的值增1

    printf(“i = %d\n”, i);

    return 0;

}

C语言中最复杂最容易出错的要数指针了。指针让一些初级程序员望而却步,而一些新的开发语言(如JavaC#)干脆就放弃了指针。但是,在C语言程序里,你会发现大量的C语言指针的使用。因此,从一定程度上来说,只有掌握了指针,才算真正的学会了C语言。

指针的定义方式为:

类型名 *指针名;

比如:

char *pch;

上面的语句就定义了一个名为pch的字符指针。在C语言里,根据指针的不同类型,可以把指针定义为内建型别指针和自定义结构指针。根据类型不同,会将指针指向的内存数据按照不同的类型解析。即指针如果是int类型,那么就将指针指向的内存解析为一个整型;如果指针是char类型,那么就将指针指向的内存解析为一个char类型。

指针的初始化,可以让指针指向某个变量的地址,也可以让指针指向一个由内存分配函数分配的内存。

< 上一页 存储变量的内存地址 指针声明 下一页 >

周哥教IT,分享编程知识,提高编程技能,程序员的充电站。跟着周哥一起学习,每天都有进步。

通俗易懂,深入浅出,一篇文章只讲一个知识点。

当你决定关注「周哥教IT」,你已然超越了90%的程序员!

IT黄埔-周哥教IT技术交流QQ群:213774841,期待您的加入!

二维码
微信扫描二维码关注