指针学习热身程序

作者在 2011-09-02 10:50:45 发布以下内容
发现指针太绕人了,老师说要慢慢的学,小心翼翼的学,呵呵,别怕繁琐,还是从最简单的一个程序一个程序来吧
#include<stdio.h>

int main (void)
{
    int * p;        //p是变量的名字,int * 表示p变量中存放的是 int型变量 的地址
                    
//int* p 不表示定义了一个 叫*p的 int型的 变量
                    
//正确的理解是,p是变量名 p变量的数据类型是int *型。所谓int *型,实际就是存放 int型变量 的地址的类型
    int i = 3;
    int j;


    p = &i;            //正确的语法是这样写的,&称作取地址符;
                    /*
                    1. p保存了i的地址,因此p指向i。p是指针变量,i是普通变量
                    2. p不是i,i也不是p,更准确的说,修改p的值不影响i,修改i的值也不影响p
                    3. 如果一个指针变量指向了某个普通变量,则
                        *指针变量 就完全等同于 普通变量
                        例如这里,*p就完全等价于i
                                    在所有出现*p的地方都可以替换成i
                                    在所有出现i的地方也都可以替换成*p
                                    *p 其实就表示 以p的内容 为地址 的变量
                    
*/
    
    //p = i;    //p只能存放int变量的地址,不能存放int变量,这里会报错error C2440: '=' : cannot convert from 'int' to 'int *'
    
//p = 55;    //这样写也跟上面一样,也会报错error C2440: '=' : cannot convert from 'int' to 'int *'

  
    j = *p;                                //等价于 j = i;
    printf("i = %d, j = %d\n",i,j);        //输出:i = 3, j = 3
    
    return 0;
}
郝斌视频笔记 | 阅读 1036 次
文章评论,共4条
laznrbfe
2011-09-03 23:08
1
我们老师也说,有些程序员非常喜欢指针,有些程序员却想把指针去掉。指针用的得好,可以很轻松完成一些事情。
yangli0314
2011-09-07 19:31
2
我也是觉得指针很难学,,感觉很绕
gino86
2011-09-10 13:19
3
指针与多维数组,还是有点搞不明白,指针,还是比较难学的啊
lkz1987n
2011-09-10 16:03
4
解释的很好。看了谁都会明白。<img src="image/face/2.gif" class="face">
游客请输入验证码
最新评论