您的位置:首页 > 编程语言 > C语言/C++

ios开发-c语言之指针的学习

2015-03-12 09:57 316 查看
 上一节,我学习了字符串,今天学习指针,这个C语言中精华的部分,MJ老师说指针很重要,所以一些基础的东西要弄清楚:
 1.什么是指针:指针就是内存数据存储的地址
 2.问什么要定义指针变量:
    通过函数调用并不能直接操作main函数的变量值,通过将变量的存储地址传出来,再其地址上直接修改,这样就修改了自定义的变量,由此引出了指针.
 3.指针的格式:
     指针定义类型 *指针变量名
        如:int *p, char *c
 4.指针的两种赋值方式:
    1)int a = 10;
      int *p;
      p = &a;
      *p = 20;//p指的是p所指向的内存空间a
    printf("%d", *p);
    2)int a = 10;
      int *p = &a;
      *p = 20;
 5.清空指针的两种方式:
    p = 0;
    p = NULL;
    清空指针后,不能再间接访问其他存储空间
 6.指针的内存大小:
    都是8个字节.
 7.注意点:
    1)指针变量智能指向地址
    2)指针只能指向同样类型的数据,如int *p只能指向int类型的数据地址
    3)指针变量未经过初始化,不要拿来间接访问其他存储空间
 8.指向指针的指针:(作为了解)
    格式如下
    int a = 10;
    int *p = &a;
    int **pp = &p;
9.下面从我编写的程序中慢慢体会指针这个新名词:

#include <stdio.h>

/*void change(int *n);//函数声明
int main()
{
    int a = 10;//定义int类型变量a
    
    change(&a);
    
    printf("a=%d", a);//打印结果为100
    
    
    return 0;
}
void change(int *n)//形参类型为指针,智能传递地址
{
    *n = 100;

}*/
//练习:在不利用第三方变量的情况下,交换两个数的值;

/*
 void change(int *num1, int *num2);

int main()
{
    int a = 10;
    int b = 11;
    
    change(&a, &b);//调用函数change
    
    printf("a=%d, b=%d\n", a, b);
    return 0;
}
void change(int *num1, int *num2)
{
    int temp = *num1;//注意定义的时temp,不是*temp
    
    *num1 = * num2;
    *num2 = temp;
}*/
10.下面是我写的一道习题:



总结:
学习指针首先要弄清楚什么是指针,然后根据定义指针的格式,利用指针的特性进行运用,细细品味着其中的原理.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息