标签:
------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------
指针
指针变量就是用来存储地址的,占用8个字节
1.定义
类名标识符 *指针变量名
int *p
2.先定义后赋值
int a = 10;
int *p;
p = &a; //p==10;
简单修改p 的值
*p=9;
或者在定义的同时赋值int *p = &a;
3.作用
根据一个地址值,访问存储空间
指针前面定义的类型表面指针只能指向该类型的数据
上面例子
----------------------------------------------------------------------------------------
a = 10; 定义一个指针变量
假设a的地址是ffc1 p的地址是ffc5
p=&a;就是将a的地址给p,p=ffc1
a ==10 p = 10; // *p找到空间,并重新赋值
指针的使用注意
int *p;
printf(“%d”,*p); // 错误的写法
int *p = &a; //定义变量时的只是一个象征没有实际意义可以理解为(int *)p
p = 20; //这个时候*的作用是:访问变量p指向的存储空间
/*可以通过指针完成之间学习中两个数值的交换*/ #include<stdio.h> void swap(int *v1, int *v2); int main() { int a2 = 90; int b2 = 89; swap(&a2, &b2); printf("a2=%d, b2=%d\n", a2, b2); return 0; } // 完成两个整型变量值的互换 void swap(int *v1, int *v2) { int temp = *v1; *v1 = *v2; *v2 = temp; }
指向指针的指针
int a = 10;
int *p = &a;
若指向*p int**pp=&p; 再指一层int***ppp=&pp;
指针与数组
可以通过指针来遍历数组
int *p;
p = &a[0]; p指向数组首元素
或者p = a; 数组名就是数组的地址,也是首元素的地址
指针与字符串
1.常量区
存放一些常量字符串
2.堆
对象
3.栈
存放局部变量
掌握:
定义字符串的2种方式
1>利用数组
char name[] = "itcast";
* 特点:字符串里面的字符是可以修改的
* 使用场合:字符串的内容需要经常修改
2>利用指针
char *name = "itcast";
* 特点:字符串其实是一个常量字符串,里面的字符是不能修改
* 使用场合:字符串的内容不需要修改,而且这个字符串经常使用
指向函数的指针
// (*p)是固定写法,代表指针变量p将来肯定是指向函数 #include<stdio.h> int sum(int a, int b) { return a + b; } int main() { // 定义指针变量指向sum函数 // 左边的int:指针变量p指向的函数返回int类型的数据 // 右边的(int, int):指针变量p指向的函数有2个int类型的形参 int (*p)(int, int); p = sum; int c = sum(10, 9); printf("c is %d\n", c); return 0; }
标签:
原文地址:http://www.cnblogs.com/lxiaohei103/p/4379600.html