C语言--指针和一维数组
#include <stdio.h> //指针运算 int main(int argc, const char *argv[]) { short a = 10; short *p = &a; printf("&a = %p ", &a);//输出变量的的内存地址 &a = 0028FF46 printf("p = %p ", p); //输出指针变量p p = 0028FF46 printf("p+1 = %p ", p+1); //把指针变量向前1个单位 p+1 = 0028FF48 printf("p+2 = %p ", p+2); //把指针 变量向前2个单位 p+2 = 0028FF4A printf("p+3 = %p ", p+3); //把指针 变量向前3个单位 p+3 = 0028FF4C return 0; }
#include <stdio.h> // 一维数组和指针 int main(int argc, const char *argv[]) { int a[5] = {0,1,2,3,4}; int *p = &a[1]; //获取数组第二个元素的 内存地址 赋给指针变量p int i; //[] * 为取值 ()&为取地址 数组变量和指针变量 不带括号则默认取地址 printf("a[2] = %d ",a[2]); //输出数组的第三个元素 2 printf("*(a+2) = %d ",*(a+2)); //把指针a向前移动两个单位 并且取值 ,数组变量a默认指向数组的第一个元素 2 printf("*(p+1) = %d ",*(p+1));//把指针p向前移动一个单位 取值 2 printf("p[1] = %d ",p[1]); //把指针p向前移动一个单位 2 printf("a[2] = %p ",&a[2]);//用数组变量获取数组第三个元素的地址 0028FF28 printf("*(a+2) = %p ",&*(a+2));//用数组变量获取数组第三个元素的地址 后取值再获取地址 0028FF28 printf("*(p+1) = %p ",&*(p+1));//把指针变量向前移动一个单位 取值 再获取内存地址 0028FF28 printf("p[1] = %p ",&p[1]); ////把指针变量向前移动一个单位 取值 再获取内存地址 0028FF28 printf("a+2 = %p ",a+2); // 0028FF28 printf("p+1 = %p ",p+1); // 0028FF28 return 0; }
声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。
- 上一篇: 面试题之数组指针和指针数组的区别
- 下一篇: c++ 一维数组与指针