c语言之指针介绍

01-指针介绍


要研究指针首先我们要知道什么是内存。


内存:存在内存里的
 
 
 内存分了N多个小空间,每个小空间1个字节
 
 
 每个小空间有它自己的地址。每个地址之间差1
 
 int类型占用4个字节,等于占了4个空间(有4个地址),不需要记住4个地址,而记住首地址就行了(因为首地址相当于入口或者生活中的门)
 
 
 指针到底是什么了?
 
    指针就是地址,地址就是指针。


 
  
存放地址的变量就叫 指针变量
 
 
    定义指针变量的语法:
 
                类型  *指针变量名;
 
        赋值:
            指针变量名 = 地址;
 
    在声明的时候初始化
 
            类型  *指针变量名 = 地址;
 
    我们看几个指针变量
 
    怎么样打印地址值?
            %d:int类型
            %f:float类型
            %c:char类型
            %p:指针类型,也就是打印地址


 
     int *p;
     
     int* p;
     
     int * p;
     
     以上三种都可以,*代表这是一个特殊类型
     
     int* 构成了类型
 
    例:int* p;  变量名是p  int*是类型:这个类型代表指向int的指针类型
 
        char *pCh;变量名是pCh   char *是类型:这个类型代表指向char类型的指针类型
 
        float*
        double *
        long *
 
 
    注意:给指针变量赋值的时候,不要忘记加&


02 - 指针变量的使用


使用指针变量
 
        语法:
                *指针变量名;
 
        语义:这就可以访问你所指向的那块空间里的值了
 
 
 千万要注意:
    访问指针变量时加星号和不加星号的区别:
            int num;
            int *p = #
 
            1.加星号代表,是访问它所指向的空间里面的值(访问别人的妹子) *p 相当于  num;
 
            2.不加星号代表,是访问它自己的空间里面的值(访问自己的黄脸婆)p 就是自己里面存的值




03 - 指针为什么要区分类型


指针为什么要区分类型?(理解)
 
        为了告诉指针,该去读取几个字节
 
 
 只要记住一句话:什么样的变量就应该用什么样的指针去读取,否则会出异常




04 -指针的练习




练习一


Int  main () {
    int num1=10,num2=20;
    
    int *p1 = &num1;
    
    int *p2 = &num2;
    
    int sum = *p1 + *p2; //相当于num1   相当于num2


   printf("sum=%d\n",sum);
    
    printf("%d\n",*p1);
    
    printf("%p\n",p1);


}
练习二


//函数交换两个变量的值


void change(int *num1,int *num2){
    
    int temp = *num1;
    
    *num1 = *num2;
    
    *num2 = temp;
    
}
int main(int argc, const char * argv[]) {
  int num1 = 10,num2=20;
    
    change(&num1,&num2);
    
    printf("num1=%d  num2=%d\n",num1,num2);//20 10


}





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值