【C深入】指针与数组的关系

#include <stdio.h>

int main()
{
    int i;
    int* pI;
    char* pC;
    float* pF;
    
    pI = &i;
    
    printf("%0X, %0X, %d\n", pI, &i, i);
    printf("%d, %d, %0X\n", sizeof(int*), sizeof(pI), &pI);
    printf("%d, %d, %0X\n", sizeof(char*), sizeof(pC), &pC);
    printf("%d, %d, %0X\n", sizeof(float*), sizeof(pF), &pF);
    
    return 0;
}
P指针 直接打印是i的地址,&p这个是直接打印的指针的地址,和数组是有区别的。看下面的程序

#include <stdio.h>

// another file
// char* p = "Hello World!";

extern char p[];

int main()
{
    printf("%s\n", p);
    
    return 0;
}

以上程序打印出来一个乱码。

更改程序:

#include <stdio.h>

extern char* p;

int main()
{
        printf("%s\n",p);
        return 0;
}

或者

#include <stdio.h>

extern char p[];
        
int main()
{
        printf("%s\n",(*((int* )(char*)p)));
        return 0;
}



指针的运算:





数组的访问







数组作为函数的参数:


猜你喜欢

转载自blog.csdn.net/zjy900507/article/details/80852979
今日推荐