指针(例题详解)

计算机基础:
1、组成:CPU,存储,I/O
2、CPU:执行指令。
3、程序:就是有限指令的集合(外存中)
   进程:正在运行的程序(CPU会通过文件系统去将外存中的程序加载到内存并分配空间)
 存储单元:
    1最小的存储单元:bit      (存放0/1)
    2计算机的存储基本单元:byte      (每次一次性取出的宽度)
    3其他单位: KB=1024Byte=2^10Byte
            1MB=1024KB=2^10KB=2^20Byte=2^23bit
          1GB=1024MB=2^10MB
    注:8GB=1024*8MB=2^13MB=2^23KB=2^33Byte     


4、物理地址:内存条上连续的编号
5、指针:就是地址
6、变量:
    整型变量: int a=3    整型变量:专门存放整型的值
    指针变量:             指针变量:专门存放指针的变量
        定义: 类型* 变量名;
      引用指针变量:引用内容    (注:引用指针内容的长度取决于指针的类型)
    注:所有指针变量都为4Byte  
    
7、通过指针修改空间的内容: *pb=100;
    
    
9、空指针: null
8、(***)指针的运算:  +  -   注:指针指向的元素地址 
     int* pa;
     pa+n==pa+sizeof(int)*n        ;指针是指向的元素的地址,p+n代表是向后移动4个元素
     pa-n==pa-sizeof(int)*n        ;指针是指向的元素的地址,p+n代表是向前移动4个元素
 

#include<stdio.h>

void main()
{
//定义普通变量
        int a=65537;
        short b=1234;
//定义指针变量:分配空间(专门用于存放地址)
        int* pa=&a;

        printf("sizeof(pa)=%d\n",sizeof(pa));
        short* pb=&b;
        printf("sizeof(pb)=%d\n",sizeof(pb));
//引用内容:a
        printf("a=%d,&a=0x%x,pa=0x%x,*pa=%d\n",a,&a,pa,*pa);
        printf("b=%d,&b=0x%x,pb=0x%x,*pa=%d\n",b,&b,pb,*pb);

//定义short指针指向int的变量
        short *pc=&a;
        printf("*pc=%d\n",*pc);

        int* pd=&b;
        printf("*pd=%d\n",*pd);
}

猜你喜欢

转载自blog.csdn.net/cs13797778767/article/details/81136452
今日推荐