指针的运算

2020-07-02  本文已影响0人  爱生活_更爱挺自己

指针的运算

#include<stdio.h>

int main(void)
{
    char ac[] = {0,1,2,3,4,5,6,7,8,9,};
    char *p = ac;
    printf("p =%p\n", p);
    printf("p+1=%p\n", p+1);
    
    int ai[] = {0,1,2,3,4,5,6,7,8,9,};
    int *q = ai;
    printf("q =%p\n", q);
    printf("q+1=%p\n", q+1);
    
    return 0;
}
p =0xbffbad5e
p+1=0xbffbad5f
q =0xbffbad2c
q+1=0xbffbad30

sizeof(char)=1,sizeof(int)=4

#include<stdio.h>

int main(void)
{
    char ac[] = {0,1,2,3,4,5,6,7,8,9,};
    char *p = ac;
    printf("p =%p\n", p);
    printf("p+1=%p\n", p+1);
    printf("*(p+1)=%d\n", *(p+1));
    
    int ai[] = {0,1,2,3,4,5,6,7,8,9,};
    int *q = ai;
    printf("q =%p\n", q);
    printf("q+1=%p\n", q+1);
    printf("*(q+1)=%d\n", *(q+1));
    
    return 0;
}
p =0xbffbad5e
p+1=0xbffbad5f
*(p+1)=1
q =0xbffbad2c
q+1=0xbffbad30
*(q+1)=1

指针的计算

#include<stdio.h>

int main(void)
{
    char ac[] = {0,1,2,3,4,5,6,7,8,9,};
    char *p = ac;
    char *p1 = &ac[5];
    printf("p =%p\n", p);
    printf("p+1=%p\n", p+1);
    printf("*(p+1)=%d\n", *(p+1));
    printf("p1-p=%d\n", p1-p);
    
    int ai[] = {0,1,2,3,4,5,6,7,8,9,};
    int *q = ai;
    int *q1=&ai[6];
    printf("q =%p\n", q);

    printf("q1 =%p\n", q1);
    printf("q1-q=%d\n",q1-q);
    return 0;
}

*p++

指针的比较

0地址

指针的类型

指针的类型转换

上一篇 下一篇

猜你喜欢

热点阅读