C语言指针学习【5】

#include<stdio.h>
void f( int *parr , int length)
{
 int i;
 for(i=0;i<length;i++)
 {
 
 printf("\n%d\n",*(parr+i)); 
  
  
 }
}
int main()
{
 int a[5];
 int b[4];
 
 printf("%#x\n",&a[0]);
 printf("%#x",&a);
 
 int c[5]={1,2,3,4,5};
 int d[6]={-1,-2,-3,-4,-5,-6};
 int e[100]={1,23,34,46};
 f(c,5);
 printf("---------------");
 f(d,6);
 printf("--------------------");
 
 
 
 return 0;
 
 /*
 一维数组名是个指针常量;存放的是一维数组第一个元素的地址; 
  
 如果p是个指针变量,则,p[i] 永远等于*(p+i);
 如果一个函数要处理一个数组,则需要接受该数组的 数组名,数组个数 
 */
 
}

2.

#include<stdio.h>
void fun(int *pArr,int length)
{
 printf("-------------------------");
 pArr[3]=88;
 printf("\n%x\n",pArr);//输出的是数组a的首地址 22fe40 
 printf("\n%x-%x\n",pArr[0],*pArr);//a的首地址里面的值 1 1
 printf("\n%x\n",&pArr);  //指针变量*pArr的地址 22fe00 ************************
 printf("\n%x\n",&pArr[3]);//           22fe4c
 printf("\n%x-%d\n",pArr[3],pArr[3]);
 printf("-------------------------");
}
int main()
{
 int a [5]={1,2,3,4,5};
 int b [6]={-1,-2,-3,-4,-5,-6};
 printf("************************");
 printf("\n%x",a);//数组a的首地址aafe40
 printf("\n%x",&a[0]);//数组a的首地址aafe40
 printf("\n%d\n",a[0]);//数组a的首地址的值 1
 printf("\n%x\n",&a[3]); //22fe40
 printf("***********************"); 
 printf("\n%d\n",a[3]);
 fun(a,5);
 printf("\n%d\n",a[3]);
 printf("\n%x\n",&a[3]);
 printf("\n%x\n",&a[4]);
 //a = &a[2];  cannot convert from "int * " to "int [5]" a就是个指针常量 
  
 
 return 0;
}

转载于:https://my.oschina.net/nuc630/blog/294316

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值