指向数组的指针,先初始化一个数组,使用传统方式遍历

 void main()
{
int a[] = { ,,,, };
for (int i = ; i < ; i++)
{
printf("%d,%x\n", a[i], &a[i]);
printf("%d,%x\n",*(a+i),a+i); //等价 a[i] , &a[i]
}
}

  a就是数组a的首地址,即元素1的地址, a + 1 代表 地址+1,即这里就是增加 int型 4字节的长度, 指向下一个地址即元素2的地址

 int a[] = { ,,,, };
int *p = NULL; //创建一个空指针
p = a;//p是一个指针变量,a就是 数组首地址 元素1的地址

  因为我们利用指针遍历同样能达到效果

 //利用指针循环
for (int *pp = a; pp<a+; pp++) //地址++
{
printf("%d,%x\n",*pp, pp);
}

  有了上面的理解,指针结构体其实是一样的。

 //指针结构体
struct info
{
char name[];
int id;
}; void main()
{
struct info myinfo[] = { {"zc1",},{ "zc2", }, {"zc3",}, {"zc3",}, {"zc4",} }; //常规方式输出
for (int i = ; i < ; i++)
{
printf("%s,%d\n",myinfo[i].name, myinfo[i].id);
//指针
printf("%s,%d\n", (*(myinfo+i)).name, (*(myinfo + i)).id);
} //利用指针循环,指针结构体
struct info *px = myinfo;
for (; px < myinfo; px++)
{
printf("%s,%d\n", px->name, px->id); //指针结构体输出方式 指针变量->属性
printf("%s,%d\n", (*px).name, (*px).id); //指针结构体输出方式 *指针变量.属性
// px->id等价 (*px).id
} getchar(); }

    

  

c语言指针数组和结构体的指针的更多相关文章

  1. C语言结构体指针(指向结构体的指针)详解

    C语言结构体指针详解 一.前言 一个指向结构体的变量的指针表示的是这个结构体变量占内存中的起始位置,同样它也可以指向结构体变量数组. *a).b 等价于 a->b. "."一 ...

  2. C语言文件操作 FILE结构体

    内存中的数据都是暂时的,当程序结束时,它们都将丢失.为了永久性的保存大量的数据,C语言提供了对文件的操作. 1.文件和流 C将每个文件简单地作为顺序字节流(如下图).每个文件用文件结束符结束,或者在特 ...

  3. 全面总结sizeof的用法(定义、语法、指针变量、数组、结构体、类、联合体、位域位段)

    一.前言 编译环境是vs2010(32位). <span style="font-size:18px;">#include<iostream> #inclu ...

  4. c语言中较常见的由内存分配引起的错误_内存越界_内存未初始化_内存太小_结构体隐含指针

    1.指针没有指向一块合法的内存 定义了指针变量,但是没有为指针分配内存,即指针没有指向一块合法的内浅显的例子就不举了,这里举几个比较隐蔽的例子. 1.1结构体成员指针未初始化 struct stude ...

  5. c语言里用结构体和指针函数实现面向对象思想

    一.基础研究 观察如下两个程序a.c和b.c: A.c: B.c: 这两个程序都是要实现在屏幕上第10行40列打印一个绿色的字符c: 这两个程序的数据组织方式是一样的,都是使用结构体,而且对共性和个性 ...

  6. C语言_了解下结构体指针

    在C语言中几乎可以创建指向任何类型的指针,包括用户自定义的类型.当然也可以指向结构体,先看一个小案例: #include <stdio.h> #include <string.h&g ...

  7. C语言:使用结构体和指针函数实现面向对象思想(OO编程)

    原文:https://www.linuxidc.com/Linux/2016-12/138789.htm 有关:<C语言:过年回家 发现只有我没有对象> 一.基础研究 观察如下两个程序a. ...

  8. C语言结构体和指针

    指针也可以指向一个结构体,定义的形式一般为: struct 结构体名 *变量名; 下面是一个定义结构体指针的实例: struct stu{ char *name; //姓名 int num; //学号 ...

  9. 【转】C语言中不同的结构体类型的指针间的强制转换详解

    C语言中不同类型的结构体的指针间可以强制转换,很自由,也很危险.只要理解了其内部机制,你会发现C是非常灵活的. 一. 结构体声明如何内存的分布, 结构体指针声明结构体的首地址, 结构体成员声明该成员在 ...

随机推荐

  1. C#调用Excel宏

    using System; using Excel = Microsoft.Office.Interop.Excel; namespace WindowsFormsApplication1 { /// ...

  2. Lua语言中的__index,__newindex,rawget和rawset

    转自:http://blog.csdn.net/wangbin_jxust/article/details/12108189 在谈及Lua中的__index,__newindex,rawget和raw ...

  3. Windows7下搭建Eclipse+Python开发环境

    机器: Windows7_x86_64 前提: 机器已成功安装Python2.7,并配置好环境变量. 步骤: 一.Eclipse的安装 Eclipse是基于java的一个应用程序,因此需要一个java ...

  4. Asynchronous programming with Tornado

    Asynchronous programming can be tricky for beginners, therefore I think it’s useful to iron some bas ...

  5. HttpClient上传下载文件

    HttpClient上传下载文件 java HttpClient Maven依赖 <dependency> <groupId>org.apache.httpcomponents ...

  6. Web 过滤器参数设置问题

    问题描述: 在代码定义了3个过滤器,分别为filter1,filter2,filter3,过滤的Servlet范围分别是"/*","/Servlet1",&qu ...

  7. BPM与ESB

    BPM:业务流程管理  --监控处理流程的轨迹以及处理过程 开源:JBPM 场景: 1.单一系统的协同工作比如审批流程,请假流程 2.多个系统的集成,复用各个子系统,构建新的处理流程(流程的优化与流程 ...

  8. 字符串,数组,定时器,form

    一.字符串 <script> /* // 字符串的属性 var a="hello world"; console.log(a.length); console.log( ...

  9. IdUDPServer中文汉字乱码 及IdTCPClient

    官网 http://www.indyproject.org/docsite/html/frames.html?frmname=topic&frmfile=TIdTCPServer_OnExec ...

  10. xe Style

    //注意引用:vcl.themes, vcl.styles, IOutils procedure TForm1.FormCreate(Sender: TObject); var stylename: ...