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

 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. 同一个IP段ping不通同事的电脑

    原因居然是同事的防火墙打开了. windows关闭防火墙的教程,请自行百度.

  2. Linux命令详解-文件系统管理

    1. 外部设备简介 (1.)硬盘的分类: IDE硬盘 ./dev/hda   hdb,hdc…  分区后:/dev/hda1  /dev/hda2 scsi硬盘: /dev/sda   sdb,sdc ...

  3. python学习之----urllib与urllib2的区分

    urllib 还是urllib2 ? 如果你用过Python 2.x 里的urllib2 库,可能会发现urllib2 与urllib 有些不同. 在Python 3.x 里,urllib2 改名为u ...

  4. JQ 确定与取消弹出框,选择确定执行Ajax

    $(function () { $("#GetCoupon").click(function () { function del() { var msg = "请确定领取 ...

  5. jmeter-noguimodel

    jmeter -Dthreads= -n -t ~/Desktop/image-controller.jmx -l myimage/out -e -o myimage/log -j myimage/r ...

  6. UVA350-水题

    #include<iostream> using namespace std; int main() { int c = 0; int Z, L, I, M; while (cin > ...

  7. OpenACC 简单的直方图

    ▶ 简单的直方图,强调原子操作的使用 ● 代码 #include <stdio.h> #include <stdlib.h> #include <openacc.h> ...

  8. ASP.NET CMS: Administration Template

    ASP.NET CMS: Administration Template For many creating advanced ASP.NET website or application admin ...

  9. 3. HashMap和JSONObject用法

    <%@page import="net.sf.json.JSONObject"%><%@page import="java.util.List" ...

  10. HTML5 Canvas ( 图片绘制 转化为base64 ) drawImage,toDataURL

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...