变量与指针变量的区别

                                 谈一般变量与指针变量的区别

 

一. 首先我们要知道变量访问有两种方式

                1 . 变量名  :  例如    int a = 10   i+j = 10

                2 . 地址      :顾名思义它表示的是一个变量的地址,就好比你的名字是个变量,我可以通过名字来追踪到你,但我也可以 通过你家的地址去找到你,对余c语言的地址也是一样的, 还有就是我们要知道    指针 = 地址。

二. 我们话也不多说,直接在编程中体验更好一点

#include <stdio.h>
#include <stdlib.h>
int main()
{

    
    int a = 10;      //整型变量 , 存放的是整数
     //定义之后可以单独拿出来赋值,例如:
     
     a = 123;     //这时a 的值便不再为10 ,而是100 ,一般变量都是可这般赋值
    
    char c = 'c';
    int b[3] = {1,2,3};
    

    int* p;       //指针变量,存放的是地址  此时* 是一个标识符
    p = &a;       //给指针变量赋值  ,& 是取地址符号   例如:
    
    
    printf("a的地址为:  %p \n",&a);     // & 取地址, 取变量名所代表的变量的内存地址
    
    
    
    //这里我们要注意一下  /*   *p = &a;   */  这么写是错误的!!!!!!!!!
    // * 只有在定义一个指针变量时侯,才是指针的标识符
    //  其他情况,都是一个运算符, 也就是说此时的 * 代表的是一个运算符,跟 +-*/运算类似
    //  该运算符的功能是, 取出内存地址中数据的值(取内容)例如
    
    
    printf("通过地址来获取a的值  a= %d \n",*(&a));    //这时 * 便是取出a 地址中的数据的值
    
     
    
    /*
    我们先找出3个变量的相同点与不同点
    
    1.相同点 
        a  c   b[]  都是变量
    
    2 不同点
    
        变量的类型不同
        a = 整数型
        c = 字符型
        b[] = 数组
        */
        
        
    
   /* 那么接下来我们会问
        问:什么变量能存放地址? 
        答:指针变量存放的是地址
        问:怎么才能定义一个指针变量?
        答:
            例如 int *p;   或   int* p;
    
    */
    
    
    return 0;
}

       

©️2020 CSDN 皮肤主题: 数字20 设计师:CSDN官方博客 返回首页