1210.1——关于指针的问题

http://c.biancheng.net/cpp/html/71.html

 转载自C语言网

 

指针--一种类型,指针类型(*);

 指针变量--指针只能指向某块地址,不能给一个常量值。 

整形指针

int * 

//字符串

char * 

//浮点型指针

float *

int a = 10;

int *p = &a;(取地址。指针类型和a是一样的 

指针在内存占据8个字节,与类型无关 

通过指针变量p改变a的值

1.获取变量p的值

2.使用*获取某个地址里面的值。

*p = 20.即可改变源地址@a,里面a的值。

2)获取数组的地址

int array 【5】={1,2,3,4,5}

printf("%p ,array") -----获取首地址

printf("%p,&array[0]")----获取第一个元素的地址

printf("%p ,array[0]")-----无效,因为array [0]是取值1,要用%d.

 

printf("array + 1 %p ,array+ 1")   -----地址+1,地址字节是4,(array + 1 %p ,array+ 1*4字节),所以是地址+字节数

 

1.常量指针

const  int*pA = &a

*pA = 20  ------不能改变指针指向的变量的值

pA = &b -----可以改变指针的指向

2.指针常量

int *const pA = &a;

*pA = 20-----可以改变指针指向的变量的值

pA = &b;-------不能改变指针的指向

3.指向常量的常量指针

const int *const pA-------指针的指向和指向的值都不可以改变。

posted @ 2015-12-10 20:46  王权  阅读(150)  评论(0编辑  收藏  举报