指针细节整理2

/*指针的细节汇总
     2017年12月15日14:59:34
*/

#include <stdio.h>

int main(void)
{
    int a[10]={1,2,3,4,5,6};
    int b[20]={1,2,3,4,5,6,7,8};
    int *p = a;//指针变量指向a的地址。
    int * q1 = &b[5];//指针变量指向b[5]的地址。
    int * q2 = &b[3];//
    printf("--------\n");
    printf("%d\n",q1-q2);//--------2
    printf("%d,%d\n",q1,q2);
    printf("--------\n");
    /*
        表示q1所指的元素和q2所指的元素差2个元素
    */

    printf("%d,%d\n",p,&a);//a的地址

/*
//注意细节一:

    ++p;//代表&a加 int个字节(4)
    printf("%d\n",p);
    /*即p+1:指向同一数组的下一个元素
        p-1:指向同一数组的上一个 元素 

        公式:p+1*d(d代表参数类型字节大小)
    */
//*//

    printf("&a[0]:%d,a:%d,&a[2]:%d,p:%d,p+2:%d,a+2:%d\n",&a[0],a,&a[2],p,p+2,a+2);
    printf("%d,%d,%d\n",*p,*(p+2),a[2])    ;
    /*
        p的初始值为&a[0],则p+i和a+i就是数组元素a[i]的地址 

    */

    printf("%d,%d",*(p+2),*(a+2));
    /*
        *(p+i)或*(a+i)是p+i或a+i所指向的数组元素,即a[i].
    */

    return 0;
 } 

 /*
    若a的首元素的地址为1000,数组为float类型的
    则a[3]的地址为:1000+3*4 =1012
 */
时间: 2024-10-12 13:39:40

指针细节整理2的相关文章

指针细节整理3

/* 思考问题: 1.执行完Afor循环后指针指向哪里? 2. B重新初始化的目的 3. 假设没有B,试想下p的初始值为多少? */ #include <stdio.h> int main(void) { int a[10],i; int * p = a; printf("请输入10个数字:"); for(i = 0;i <= 9;i++)//A scanf("%d",p++); // p = a;//B for(i = 0;i <= 9;i

指针细节整理

2017年12月16日15:49:061.p++;*p;p++使p指向下一个元素a[1].然后执行*p,则是a[1]的值 2.*p++;++和* 的优先级是一样的 也就是先引用p的值,然后在增加 3.(若p的初始值为&a[0]) *(p++)和*(++p)作用不一样. *(p++):先取出*p的值,然后使p+1 ==>a[0]==>线引用后增加 *(++p): 先p+1,然后取出*p的值 ====>a[1]==>先增加,后引用. 4. ++(*p) 表示p所指向的元素值加1

2017年 1月 15日 指针 学习整理

有关指针的概念: 指针是一个特殊的变量,它里面存储的数值被解释为内存里的一个地址. FIrst of all:我们需要明确目标 关于指针的学习以及使用我们需要搞清楚有关指针的四个内容:指针的类型,指针所指向的类型,指针的值(或者说叫指针所指向的内存区),还有指针本身所占用的内存区(指针也是一个特殊的变量吗,它肯定也是占据内存的).接下来让我们分别进行学习. 我们先来申明几个指针的例子: 1 int *ptr; 2 char *ptr; 3 int **ptr; 4 int (*ptr)[3];

PHP7版本改动细节整理翻译完毕

自从鸟哥发布PHP7相关的版本以来,就一直关注PHP7的进展.PHP7是非常值得期待的一个版本,性能获得了极大的提升,语法也更加合理规范.最近就花了一些时间,整理翻译了PHP7版本的改动记录文件.主要包括了以下部分: 2 非兼容性改动 2.1 语言修改 2.1.1 变量处理机制修改 2.1.2 list()修改 2.1.3 foreach 修改 2.1.4 参数处理机制修改 2.1.5 整型处理机制修改 2.1.6 字符串处理机制修改 2.1.7 错误处理机制修改 2.1.8 其他语言层面的修改

react 细节整理

前言: 在使用react时针对于其的大面的语法,规范等是有了解的,可能会忽略了些细节的东西导致在调试的时候会很麻烦,今天我将针对其中的细节点进行下整理,希望能够让大家更加深入,全面地地去了解react. 细节 1. 组件类的render中只能包含一个顶级标签 // 错误写法 var ErrorComponent = React.createClass({ render: function() { return <span>test1</span> <span>test2

测试细节整理

回想起测试工作的点点滴滴,对于在做的项目管理app ,将容易忽视的bug或细节记录出来,不断去提高自己 1.列表数据量比较大时,进入数据详情界面,返回的列表界面需要停留在用户之前停留的地方,否则体验会很差,一般开发会设置为手动刷新 (eg:项目列表中存在很多个项目,假如用户进入列表的第二页,点击其中一个项目,进入项目详情界面,返回项目列表时,页面停留在第二页) 2. 搜索记录列表上下滑动进行刷新,数据会错误显示为空 3.对于删除数据的历史数据处理 (eg:对成员a分配任务,任务列表显示成员a的任

指针 (整理版)

指针是C/C++编程中的重要概念之中的一个,也是最easy产生困惑并导致程序出错的问题之中的一个. 利用指针编程可以表示各种数据结构,通过指针可使用主调函数和被调函数之间共享变量或数据结构.便于实现双向数据通讯.指针可以灵活的操作内存,合理的操作内存可以使程序更高效. 1.指针的概念 本质上讲指针也是一种变量,普通的变量包括的是实际的数据,而指针变量包括的是内存中的一块地址,这块地址指向某个变量或者函数,指针就是地址.指针是一个指示器,它告诉程序在内存的哪块区域能够找到数据. 2.指针的内容 指

C/C++指针知识整理(一)

1.指针(变量)的类型 把指针声明语句里的指针名字去掉,剩下的部分就是这个指针的类型.这是指针本身所具有的类型. (1)int*ptr; //指针的类型是 int* (2) char*ptr;//指针的类型是 char* (3) int**ptr;//指针的类型是 int** (4) int(*ptr)[3];//指针的类型是 int(*)[3] (5) int*(*ptr)[4];//指针的类型是 int*(*)[4] 2.指针所指向的类型 把指针声明语句中的指针名字和名字左边的指针声明符*去

Shell操作之细节整理(未完结)

在学习Linux过程中,曾经遇到过一些小问题,虽然可能微不足道,但是在追求细节的时候往往会比较纠结(强迫症犯了),空出一个博客文章空间,记录一些细节上的内容,都是很小很简单的东西,不喜勿喷. 01.bc计算时浮点问题 记的用bc计算数字的时候,如果结果出现小数点,则小数点后内容默认不显示,当时没太在意. [[email protected] wangdong]# echo "1500/1024" | bc 1 [[email protected] wangdong]#  [[email