* :取值操作符

&:取址操作符

一、指针与指针变量的区别:指针变量的值(即指针变量中存放的值)是地址(即指针)

二、定义指针变量时要注意必须指定基类型

三、如果 pointer_1 = &a       则&*pointer_1 = &a(因为*和&优先级相同,自右向左结合)      *&a 和 *pointer_1也是相同的

       即 *&a = a

       (*pointer_1)++ 相当于 a++   括号不能省略

四、数组与指针

       数组元素的指针就是数组元素的地址

       引用一个数组元素:a. 下标法  如 a[ i ]

                                     b.  指针法 如*(a+i)或*(p+i)

       a 时数组名,p 是指向数组元素的指针变量,其初值 p = a( 等价于 p=&a[ 0 ] )

       数组名可翻译成数组的第一个元素的地址 

       二维数组

十、指针

十、指针


       *(p+i)+j 是二维数组 i 行 j 列的元素的地址,*(*(p+i)+j)是 i 行 j 列的元素的值

五、字符串与指针

       存取方法: 下标法            指针法

       字符数组和字符指针的区别:

       a. 字符数组由若干个元素组成,每个元素中放一个字符,而字符指针变量中存放的是地址(字符串第1个字符的地址)

       b. 字符数组只能对各个元素赋值,不能用这种方法:

            char str[20] ;

            str = " Hello ! " ;

            字符指针则可以这样赋值:

             char * a;

             a = " Hello ! " ;

             注意赋给 a 的不是字符,而是字符串的第一个元素的地址

        c.  对字符指针变量赋初值   char * a = " Hello ! " ;    等价于    char * a;

                                                                                                      a = " Hello ! " ;

        d.  正确: char str[10] ;                             

                        scanf( " % s ", str ) ;     

             错误: char * a ;

                        scanf( " % s ", a );       // 如果指针变量没有赋初值,就会随机指向  

        e.   指针变量的值可以改变

十、指针十、指针

         f.   若定义了一个指针变量,并使它指向一个字符串,则可用下标形式引用指针变量所指的字符串中的字符


      十、指针十、指针

六、指针函数和函数指针的区别

       指针函数是指带指针的函数,即本质是一个函数

       函数指针是指向函数的指针变量,因而函数指针本身首先应是指针变量,只不过该指针变量指向函数

七、指针数组和指向指针的指针

       指针数组:一个数组,若其元素均为指针类型数据,则称为指针数组,即指针数组中的每一个元素都相当于一个指针变量

                        例: int *name[4] ;

       指向指针的指针定义形式:  char **p ;    //相当于 *( * p)

十、指针


十、指针


十、指针


 

相关文章:

  • 2021-09-20
  • 2021-12-05
  • 2022-12-23
  • 2021-05-24
  • 2021-09-25
  • 2021-08-10
  • 2021-12-29
猜你喜欢
  • 2021-08-20
  • 2021-10-16
  • 2021-12-12
  • 2021-11-18
  • 2021-04-19
  • 2021-08-13
相关资源
相似解决方案