c之指针与数组(1)

1.指针与地址

 一元运算符&可用于取一个对象的地址。例如:int i=1;&i就是计算机地址。

一元运算符*是间接寻址或者间接引用运算符。例如:

int x=1,y;int ip*;

ip=&x

y=*ip;

2.指针与函数参数

   c语言是以传值的方式将参数值传递给被调用函数,因此被调用函数不能直接修改主调函数中变量的值。例如:

void swap(int x,int y)
{
  int temp;
  temp=x;
  x=y;
 y=temp
}

swap不能交换两个变量x,y的值。

可以使主调程序将指向所要交换的变量的指针传递给被调用函数,即swap(&a,&b);

void swap(int *px,int *py)
{
  int temp;
  temp=*px;
  *px=*py;
 *py=temp
}

3.指针与数组

   int a[10];

   int *pa;

  pa=&a[0]//指针pa指向数组a的第一个元素的地址。等同于pa=a;

 &a[2]=a+2;

例如返回字符串s的长度:

int strlen(char *s)
{
  int n;
  for(int i=0;*s!='';s++)
           n++;
return n;
}

 在函数定义中,形式参数char s[];和char *s;是等价的。

原文地址:https://www.cnblogs.com/davidwang456/p/3456930.html