美文网首页
C语言_指针

C语言_指针

作者: 书虫大王X | 来源:发表于2019-08-04 10:26 被阅读0次

1.定义指针:

int c = 10;
float b = 3;
int *a1 = &c;//正确
int *a2 = &b;//错误;指针只能与之对应的类型的数据的地址
int  *a3 = c;//错误;指针变量只能存地址 不能存具体值
//‘&’ 取某个变量的地址

2.除了定义指针变量时,其余时候指针都是访问某个地址的值,例:

 int c= 20;
 int *temp = &c;//定义指针变量
 *temp = 21; //访问temp地址里面的数据 赋值为20

3.关于指针的小知识点:

a.指针变量的值是一个地址, 这个地址不仅可以是变量的地址, 也可以是其它数据结构的地址,例:

//数组指针:
int a2[10] = {};
int *pa2 = a2;

//函数指针:
int(*pFunc)(int) = test;

int test(int a){
    return 0;
}

b.另外,指针在定义时必须赋予初值,如果初值不确定,则赋值为NULL。(NULL指向内存的起始地址)
c.指针变量本身在内存里面占据8个字节内存空间。

4.指针与数组的关系:

数组名并不是一个变量 ,系统没有分配内存空间(数组名表示数组第一个元素的地址) ;
而指针变量是有内存空间的。
在使用时的差异:

int score[5] = {39,32,87,58,27};
    for (int i = 0; i < 5; i++) {
        printf("%d ",score[i]);
    }
    for (int i = 0; i < 5; i++) {
        printf("%d ", *(score + i));
    }

5.练习:

    int a = 10;
    int *pa = &a;
    
    int a2[10] = {};
    int *pa2 = a2;
    
    char c = 'a';
    char *pc = &c;
    
    printf("%lu\n",sizeof(a)); //内存里面占据4个字节内存空间
    printf("%lu\n",sizeof(pa));//内存里面占据8个字节内存空间
    printf("%lu\n",sizeof(a2));//内存里面占据40个字节内存空间
    printf("%lu\n",sizeof(pa2));//内存里面占据8个字节内存空间


    int score[5] = {39,32,87,58,27};
    printf("%p\n", score); //打印地址:0x7ffeefbff4d0
    printf("%p\n", score+1);//打印地址:0x7ffeefbff4d4(score+1 = 0x100 + 1 * 4 = 0x104)
    printf("%d\n", *(score+1));//打印结果:32
    printf("%d\n", *score+1);//打印结果:40

一个小坑:

    int score2[5] = {39,32,87,58,27};
    printf("%d\n", (*score2)++); //打印结果:39 
    printf("%d\n", score2[0]); //打印结果:40(注意:不是39;上一个语句执行完,已经加1)
    printf("%d\n", ++*score2); //打印结果:40 

相关文章

  • C语言05- 指针

    C语言05- 指针 13:指针 指针是C语言中的精华,也是C语言程序的重点和难点。 13.1:指针定义与使用 指针...

  • 02-C语言的指针

    02-C语言的指针 目标 C语言指针释义 指针用法 指针与数组 指针与函数的参数 二级指针 函数指针 指针在C中很...

  • C语言指针总结大学霸IT达人

    C语言指针总结大学霸IT达人 C语言的指针是C语言区别其它语言的最主要的特定之一。有了指针,C语言就可以抛开所有束...

  • 带小白学C语言指针

    C语言里指针才是C语言的开始和指针;C语言里基本所有东西都是由指针演变而成; 指针是指向地址的变量,类型就是指针...

  • 在Swift中使用C语言的指针

    在Swift中使用C语言的指针 在Swift中使用C语言的指针

  • [Swift]结构体指针操作

    C语言的指针操作 在c语言中申明一个变量并通过指针修改该变量的值 a value is 2 c语言操作结构体指针操...

  • Go语言-指针

    Go语言中的指针不同于C语言,Go语言的指针使用方法要简单很多。当然和C语言从指针定义到指针的使用都有很大的不同。...

  • C语言中的指针与数组

    C语言中的指针与数组 @(C语言)[排序算法, 快速排序, C实现] 引言 相信指针与数组是不少同学在初学C语言时...

  • 指针数组和数组指针

    指针数组|存储指针的数组 在C语言和C++语言中,数组元素全为指针的数组称为指针数组。 例如:int *p[10]...

  • iOS开发 -- C语言基础8(指针)

    iOS开发 -- C语言基础8(指针) 指针是C语言中非常重要的数据类型,如果你说C语言中除了指针,其他你都学得很...

网友评论

      本文标题:C语言_指针

      本文链接:https://www.haomeiwen.com/subject/skuedctx.html