zoukankan      html  css  js  c++  java
  • 指针的加减操作

    #include <stdio.h>
    int main()
    {
    	//测试指向结构体的指针自减后地址的变化
    	typedef struct Student 
    	{
    		int id;
    		char name[10];
    		int score;
    	}stu;
    	stu a = { 1, "xiaoming", 33 };
    	printf("结构体的大小为%d
    ", sizeof(a));
    
    	stu *p = &a;
    	printf("指针p的地址为%d
    ", p);
    	printf("指针p的大小为%d
    ", sizeof(p));
    	printf("指针p指向结构体的大小为%d
    ", sizeof(*p));
    
    	p--;
    	printf("指针p的地址为%d
    ", p);
    	printf("指针p的大小为%d
    ", sizeof(p));
    
    	//测试指向char型的指针自减后地址的变化
    	char b = 11;
    	char *p1 = &b;
    	printf("指针p1的地址为%d
    ", p1);
    	printf("指针p1的大小为%d
    ", sizeof(p1));
    
    	p1--;
    	printf("指针p1的地址为%d
    ", p1);
    	printf("指针p1的大小为%d
    ", sizeof(p1));
    
    	//测试二级指针自减后地址的变化
    	char **p2 = &p1;
    	printf("指针p2的地址为%d
    ", p2);
    	printf("指针p2的大小为%d
    ", sizeof(p2));
    
    	p2--;
    	printf("指针p2的地址为%d
    ", p2);
    	printf("指针p2的大小为%d
    ", sizeof(p2));
    
    	return 0;
    }
    

      

    结构体的大小是20,在对指向结构体a的指针p做自减后,他的地址变化量为20;

    对指向char型数据的指针做自减后,地址变化量为1;

    对二级指针做自减后,地址变化量为4,因为二级指针p2指向的是p1,变化量为p1的大小(32位系统);

  • 相关阅读:
    构建之法读后感
    开发web信息管理系统用到的相关技术
    java 动手动脑
    Java 课后作业
    Java 7 动手动脑
    java 动手动脑
    java 字符串
    java 动手动脑
    java 课后作业
    课堂实验
  • 原文地址:https://www.cnblogs.com/zzdbullet/p/9493369.html
Copyright © 2011-2022 走看看