首页 > 其他分享 >结构体初阶

结构体初阶

时间:2023-02-20 17:02:49浏览次数:22  
标签:arr 初阶 int pa 数组 printf 结构 指针

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
//int main()
//{
//    //指针+指针?NO!
//    // 日期+/-天数
//    // 日期-日期
//    //    日期+日期?没什么用
//    //
//    return 0;
//}
 
//int main()
//{
//#define N_VALUES 5
//    //指针的关系运算
//    //for (vp = &values[N_VALUES]; vp > &values[0];)
//    //{
//    //    *--vp = 0;
//    //}
//
//    //for (vp = &values[N_VALUES-1]; vp >= &values[0];vp--)
//    //{
//    //    *vp = 0;
//    //}//最后vp停在了-1的内存位置//实际在绝大多数的编译器上是可以顺利完成任务的,然而我们还是要避免这样写,因为标准并不保证他可行
//    //标准规定:允许指向数组元素的指针与指向数组最后一个元素后面的那个内存位置的指针比较,但不允许与指向第一个元素之前的那个内存位置的指针进行比较
//    return 0;
//}
 
//int main()
//{
//    int arr[10] = { 0 };
//    arr;//数组名是数组首元素的地址
//    printf("%p\n", arr);//008CFA70
//    printf("%p\n", &arr[0]);//008CFA70
//    return 0;
//}
 
//int main()
//{
//    int arr[10] = { 0 };
//    int* p = arr;
//    int i = 0;
//    for (i = 0; i < 10; i++)
//    {
//        printf("%p <==> %p\n", &arr[i], p + i);//p为首元素地址,p+i产生的就是下标为i的元素的地址
//         // 0034FDE8 <= = > 0034FDE8
//        //    0034FDEC <= = > 0034FDEC
//        //    0034FDF0 <= = > 0034FDF0
//        //    0034FDF4 <= = > 0034FDF4
//        //    0034FDF8 <= = > 0034FDF8
//        //    0034FDFC <= = > 0034FDFC
//        //    0034FE00 <= = > 0034FE00
//        //    0034FE04 <= = > 0034FE04
//        //    0034FE08 <= = > 0034FE08
//        //    0034FE0C <= = > 0034FE0C
//
//    }
//
//    for (i = 0; i < 10; i++)
//    {
//        *(p + i) = i;
//        printf("%p\n", *(p + i));
//         // 00000000
//         // 00000001
//        //    00000002
//        //    00000003
//        //    00000004
//        //    00000005
//        //    00000006
//        //    00000007
//        //    00000008
//        //    00000009
//    }
//    return 0;
//}
 
//int main()
//{
//    int arr[10] = { 1,2,3,4,5,6,7,8,9,10 };
//    int* p = arr;
//    //arr[2] <==> *(arr+2)<==> *(p+2) <==> *(2+p) <==> *(2+arr) ==2[arr]
//    //2[arr] <==> *(2+arr)
//    //[]-是一个操作符 2和arr是两个操作数
//    //a+b
//    //b+a
//    printf("%d\n", 2[arr]);
//    printf("%d\n", arr[2]);
//    //arr[2]--> *(arr+2)--> *(2+arr)-->2[arr] 计算机编译时是将arr[2]转化为*(arr+2)运行的
//
//    printf("%d\n", p[2]);//p[2]-->*(p+2)-->*(arr+2)-->arr[2]
//    printf("%d\n", 2[p]);
//    return 0;
//}
 
//int main()
//{
//    int a = 10;
//    int* pa = &a;//pa是指针变量,一级指针
//    //ppa是二级指针变量
//    int* *ppa = &pa;//pa也是变量,&pa取出pa在内存中起始地址
//    //pppa是三级指针变量
//    int** *pppa = &ppa;
//    //套娃...
//    printf("%p\n", pa);//006FF808
//    printf("%p\n", ppa);//006FF7FC
//    printf("%p\n", pppa);//006FF7F0
//    //*pppa=ppa
//    //*ppa=pa
//    //*pa=a
//    //***pppa=a
//
//    return 0;
//}
 
指针数组-数组
//
//int main()
//{
//    int arr[10];//整型数组-存放整型的数组就是整型数组
//    char ch[5];//字符数组-存放的是字符
//    //指针数组-存放指针的数组
//    int* parr[5];//整型指针数组
//    char* carr[5];//字符指针数组
//
//    return 0;
//}

 

标签:arr,初阶,int,pa,数组,printf,结构,指针
From: https://www.cnblogs.com/morphism/p/17138046.html

相关文章

  • Redis 数据结构
    本文主要描述reids数据结构和底层数据结构的实现,用于熟悉redis的底层数据结构实现原理,下图是reids的整个数据结构组成。这篇文章主要介绍value对象这部分数据结构 SDS......
  • Java的树形结构遍历
    定义Menuimportlombok.AllArgsConstructor;importlombok.Data;importlombok.NoArgsConstructor;importlombok.experimental.Accessors;importjava.util.List......
  • TZOJ数据结构实验:树相同、左叶子和、倾斜度、直径、平衡二叉树、最小深度、层次构造二
    5429数据结构实验:树是否相同intisSameTree(structTreeNode*p,structTreeNode*q)//相同返回1,否则返回0{if(p==NULL&&q==NULL)return1;if(p==NULL||......
  • set 数据结构
    set(集合)数据结构set(集合)是一个非常有用的数据结构。它与列表(list)的行为类似,区别在于set不能包含重复的值。这在很多情况下非常有用。例如你可能想检查列表中是否包......
  • TZOJ数据结构实验:二叉树的层次构造、前中后序遍历、高度depth、叶子节点数leafs、交换
    5420数据结构实验--二叉树中序遍历(二叉链表存储)voidinorder(Bitnode*t)//中序{if(t->left)inorder(t->left);cout<<""<<t->val;if(t->right)inorde......
  • js树状结构数据处理
    使用了两个for循环,为了方便理解,可以理解为父亲找儿子,把儿子写入家族谱//pid:父id,为0是最顶级数据,其他则对应每项的id,即父.id=子.pid,则父.children=子interfaceT......
  • 数据结构刷题2023.02.20小记
    排序算法最坏时间复杂度A:归并排序,是稳定排序,需要一个栈来维护,利用分治法思想每次分成两边分别排序再合并,具有稳定性,无论何时,其时间复杂度均为O(NlogN).B:快速排序,最坏情......
  • 基于存算一体技术的新型计算机体系结构
    1.经典计算机体系结构经典计算机体系结构的基本思想由冯.诺伊曼提出,因此也被成为冯.诺伊曼架构。其主要的主要的思想是计算机由计算器,存储器,控制器,输入设备和输出设备五......
  • 12. 数据结构
    数组和链表的区别?从逻辑结构来看:数组的存储长度是固定的,它不能适应数据动态增减的情况。链表能够动态分配存储空间以适应数据动态增减的情况,并且易于进行插入和删除操作。......
  • stata 数据结构修改命令集合
    生成新变量:generate1.glnwage=log(wage)前面是变量名,后面是代表取对数2.gwage2=wage^2变平方3.gwage=edu*wage生成wage和edu的互动项4.gw=exp(lnwage)......