C语言指向指针的指针.

Python020

C语言指向指针的指针.,第1张

指针变量能指向任意一个变量(包括指针变量)

指向指针的指针定义方法

,例如int

**p

定义了一个指针变量p,他指向另一个指针变量(该指针变量又指向一个整型变量),是一个2级指针,由于指针运算符*是按自右向左顺序结合,因此上述定义相当于:int

*(*p)

(*p)是指针变量形式,它外面的*表示p指向的又是一个指针变量,int表示后一个指针变量指向的是指针变量

怎样使一个指针变量指向另一个指针变量呢?

int

**p1

int

*p2

int

i=3

p2=&i

(使p2指向i)

p1=&p2

(使p1指向p2)

那个地址 是被指向的变量的地址。

当指针刚声明完毕时,它并无指向的地址,只有当指针与 某有存储地址的变量发生联系时,才有指向地址。

例如:

int *p // 这时 p 没有指向地址

int a=3,b=14

p = &a 这时 p 指向了 变量 a 的地址了.

// 数值 *p 等于 a 里存放的数值。 printf("%d", *p) 得 3。

这时,若 a = a+1 输出 printf("%d", *p) 得 4。

p = &b p 指向了 变量 b的地址 了,输出 printf("%d", *p) 得 14 啦。

main()

{int

a[10]

//定义数组a为整型

int

*p=a,i

//p指向a的地址,即a[0]的地址

for(i=0i<10i++)

scanf("%d",&a[i])

//给数组a赋值

printf("\n")

for(p-ap<(a+10)p++)

//输出数组元素

printf("%d",*p)

//p++表示p指向数组中下一个元素的地址

}

暂时先写这么多,你一开始没给p赋值是不对的~