指针

指针是指向一个数据类型的地址,*表示一个指针,&表示取地址。

例子:

#include<stdio.h>

int main(void)
{
int a,b;
char c;
int *point_a,*point_b;
char* point_c;
char* point_d ="pointer";
a=100;
b=10;
c='c';
point_c=&c;
point_a = &a;
point_b = &b;
printf("a=%d,b=%d,c=%c,c=%d \n",a,b,c,c);
printf("point_a=%d,point_b=%d,point_c=%d\n,point_d=%d\n",point_a,point_b,point_c,point_d);
printf("*point_a=%d,*point_b=%d,*point_c=%d,*point_d=%d \n",*point_a,*point_b,*point_c,*point_d);
printf("point_d str=%s\n",point_d);
printf("*point_d str=%s\n",*point_d);
return 0;
}

运行结果:

$ ./pointer.exe
a=100,b=10,c=c,c=99
point_a=6277868,point_b=6277864,point_c=6277863
,point_d=4206640
*point_a=100,*point_b=10,*point_c=99,*point_d=112
point_d str=pointer
Segmentation fault (核心已转储)

从上面例子可以看到:

1)指针指向一个数据类型的地址,*表示指针类型,没有*表示一个指针变量,也表示所指变量地址,*+指针变量表示所指变量的内容

2)变量要获取地址,可以通过&取地址符获取。

3)char*类型的字符指针,指针变量通过整形输出是字符串地址,通过字符串类型输出是字符串内容

4)char*类型的字符指针,*+指针变量通过整形输出是第一个字符的ASCII码,通过字符串类型输出报段错误。

posted @ 2017-04-03 16:51  Jason207489550  阅读(156)  评论(0编辑  收藏  举报