指针

来源:互联网 发布:编程语言的都有啥 编辑:程序博客网 时间:2024/05/18 19:39

//

//  main.m

//  LessonPoint

//

//  Created by lanouhn on 14-7-26.

//  Copyright (c) 2014 vaercly@163.com 陈聪雷. All rights reserved.

//


#import <Foundation/Foundation.h>


int main(int argc, const char * argv[])

{

    //定义一个整型变量

//    int a = 10;

//    //定义一个指针变量, 和定义整型变量类似,也包含三部分, 数据类型 变量名 =初值, 只不过指针变量用来存储地址而已

//    //int *指针变量类型, p指针变量名, NULL指针变量初值

//    //int 的作用, 1 当自增时增加几个字节, 2 当存取数据时一次性读取几个字节

//    //定义时, *告诉编译器,后面的变量是一个指针变量, 用来存地址

//    int *p = NULL;

//    //指向关系

//    p = &a;//a的地址赋值给p

//    printf("a = %d\n", a);//直接访问内存单元数据

//    //*p 此时的作用是根据指针变量存储的地址,找到对应的内存单元, 将内存单元上的数据读取出来

//    printf("*p = %d\n", *p);//间接访问内存单元数据

//    //对于指针变量类型, 所规定的存储空间的大小只和操作系统的位数有关, 32位的操作系统式4个字节, 64位操作系统是8个字节

//    printf("%lu\n", sizeof(long *));

//    *p = 20;

//    printf("*p = %d\n", *p);

//    printf("a = %d\n", a);

//    int b = 30;

//    int *p1 = &b;

//    printf("b = %d *p1 = %d\n", b, *p1);

//    *p1 = 40;

//    printf("b = %d *p1 = %d\n", b, *p1);

//    char c = 'c';

//    char *p2 = &c;

//    printf("c = %c *p2 = %c\n", c, *p2);

//    *p2 = 'd';

//    printf("c = %c *p2 = %c\n", c, *p2);

//    int d = 40;

//    int *p3 = NULL;

//    //当对p3指向一个空间进行操作时, p3必须指向一个有效的空间(明确的空间)

//    *p3 = 50;//crash  解决方案:p3指向有效的地址空间(p3 = &d)

    //指针变量的重新赋值,叫做指针重指向, 就看最后一次的指向即可

    int a = 10;

    int *p = &a;

    printf("a = %d *p = %d \n", a, *p);

    int e = 30;

    p = &e;

    printf("a = %d e = %d *p = %d\n",a, e, *p);

    

    return 0;

}


0 0
原创粉丝点击