C指针入门

C指针入门

1,基本介绍

  • 简单的说,指针表示一个地址(存放的是地址)
#include<stdio.h>

void main(){
    
    int num = 1;
    //定义一个指针变量
    //1.int *表示类型为指针类型
    //2.名称 ptr ,ptr就是一个int *类型
    //3.ptr指向了一个int类型的变量的地址
    
    int *ptr = &num ;
    
    //num的地址是多少
    //说明1:如果要输出一个变量的地址,使用格式是%p
    //说明2:&num表示取出num这个变量对应地址
    
    printf("num的值 = %d num地址 = %p",num,&num);
    
    //1.指针变量,本身也有地址 &ptr
    //2.指针变量,存放的地址 ptr
    //获取指针指向的值 *ptr
    
    printf("ptrd 的地址是 %p ptr存放的值是一个地址为 %p ptr指向的值 = %d",&ptr,ptr,*ptr);
    
    getchar();
}

2.案例

  • 写一个程序,获取一个int变量num的地址,并显示到终端,将num的地址赋给指针ptr,并通过ptr去修改num的值。
#include <stdio.h>

void main(){
    
    int num = 88;
    int * ptr = &num;
    //先输出num没有修改的情况
    printf("num的值=%d num的地址 = %p ",num,&num);
    *ptr = 99;//通过ptr去修改num的值,num变量的值也就相应的被修改
    printf("num的值 = %d num的地址=%p",num,&num);
    
    int a = 300;
    int b = 400;
    int * ptr = &a;
    *ptr = 100;
    ptr = &b;
    *ptr = 200;
    printf("a = %d,b = %d , *ptr = %d",a,b,*ptr);
    
    getchar();
}

3.指针细节说明

  • 基本类型,都有对应的指针类型:形式为 数据类型 * ,比如int对应的指针就是 int * ,float对应的指针类型就是 float * ,以此类推;
  • 此外还有指向数组的指针、指向结构体的指针、指向共同体的指针(二级指针,多级指针)。
posted @ 2021-01-05 12:59  mx_info  阅读(113)  评论(0)    收藏  举报