码迷,mamicode.com
首页 > 编程语言 > 详细

黑马程序员-C语言指针的使用

时间:2015-03-31 00:48:04      阅读:226      评论:0      收藏:0      [点我收藏+]

标签:

------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找到空间,并重新赋值

指针的使用注意

  1. int *p只能指向int类型的数据
  2. 指针变量只能存储地址
  3. 指针未经过初始化不要拿来直接访问其他存储空间

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;

}

 

黑马程序员-C语言指针的使用

标签:

原文地址:http://www.cnblogs.com/lxiaohei103/p/4379600.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!