c语言--变量指针和指向变量的指针---部分知识点总结

2021/9/15 23:34:53

本文主要是介绍c语言--变量指针和指向变量的指针---部分知识点总结,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

  1. 不能将一个整数直接赋给指针变量作为地址

  2. 改变函数形参的值,不会改变对应实参的值

  3. //正确写法
    int n,*p=NULL;
    p=&n;
    scanf("%d",p);
    printf("%d\n",*p);
  4. “&”:取地址运算 ; “*”:指针运算符,是定义指针变量的说明符

  5. “%le”意思是用科学计数法输出的double数据。 其中%l表示双精度数据double,e表示科学计数法,也就是指数形式。

  6. p=&k就是把k的地址取出来后赋值给p。. int *p=&k;就是定义一个整型指针,并且给它初始化k的地址

  7. *p++;//等价于*p; p++;
  8. int* p1 ; int** p2; int*p3;//都是合法的定义指针变量的语句
    p=NULL;和p=0;或p='O';等价;
  9. 指针变量可以通过求地址运算符(&)来获得地址值,可以通过指针变量获得地址值,还可以通过标准函数获得地址值

  10. 语句p=NULL;执行后,指针p并不是指向地址为0的存储单元,而是具有一个确定的值-"空"

  11. 所谓函数类型是指函数返回值的类型。在C语言中允许一个函数的返回值是一个指针(即地址),这种返回指针值的函数称为指针型函数;

  12. #include <stdio.h>
    main()
    {
        char* p1 =0;
        int* p2=0;
        double* p3 =0;
        printf("%d,%d.,%dIn", sizeof(p1), sizeof(p2), sizeof(p3));//值为4,4,4
    }
    /*sizeof用来获取类型或数据对象的长度,也即是一个这种数据类型的变量在内存中所占字节 数。
    专门用来存放变量地址的变量,称为“指针变量”。所有类型的指针变量都是地址,所占字节数均为4*/
  13. #include <stdio.h>
    main()
    {
        int a = 0.*ptr;
        ptr = &a;
        *ptr = 3;
        a =(*ptr)++;
        printf("%d,%din", a.*ptr);//程序运行后的输出结果是4,4
    }
    /*程序执行过程为:定义整型变量a=0与指针ptr
    ,使指针指向变量a。对指针指向的变量进行赋值=3,将指针所指向变量加1,并赋值给a=4,此时指针依然指向变量a,输出a与指针指向的变量值: 4,4,*/
  14. #include <stdio.h>
    int change(int*data)
    {
        *data = *data % 2;//注意,此处data指向的数值对1求余会改变实参指褚向的值
        return (*data)+ 1;//重新赋给data指向的变量,然后将ta加a指向的变量值与1的和返回
    }
    main()
    {
        int data = 12;
        change(&data);  //程序第一次调用change()函数,传入实参data的地址,将data   的值修改为0 (12%2=0),此时输出data的值是0
        printf("%d," , data);
        data = change(&data);//再次调用tange()传入data的地址,将data的值修改为0     (0%2=0),然后将返回值1重新赋给主函数变量data,所以此时输出data的值是1,
        printf("%d," , data);
    }//程序运行后的输出结果是  0,1

  15. void fun (char *p2, char *p1)
    { 
        while ((*p2=*p1)!= '\0')
               { 
                   p1++; 
                   p2++;
               }
    }
    //函数的功能是 接收两个字符指针p2、p1,while循环每次将p1指向的字符赋给p2指向的字符,然后判断p2指向的字符是否是空字符'\0',若不是,p1和2顺序后移一位,直到p1和p2指向空字符,
    所以fun()函数的功能是将p1指向的字符串赋值到p2指向的内存空间中
  16. 当指针指向某个变量时,才能向其中写入数据;

  17. 指针除了指向变量外,还可以赋值为NULL,表示未指向的任何地址,此时不能写入数据,另外指针必须有基类型,只能指向基类型相同的变量

  18. 指针只能与一个整数进行运算,即移动指针,两个指针不能运算

  19. p1 =p2 =(int *)calloc(5,sizeof(int));
    //程序定义整型指针变量p1,p2,调用calloc函数分配5个整型长度的内存空间赋给p1,p2,所以p1,p2指向的是同一段内存的首地址
  20. 若定义void*p;,则p可以保存任何内存地址;

  21. void*为无类型指针,使用时,可以强制转换为任意的指针类型,



这篇关于c语言--变量指针和指向变量的指针---部分知识点总结的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程