指针的总结

来源:互联网 发布:c语言中%u是什么意思 编辑:程序博客网 时间:2024/05/06 21:19

指针变量定义格式:

    变量类型* 变量名;

    变量类型:将来可以保存什么类型的变量的地址

     * :仅仅是一个象征(标志),象征着这是一个指针变量

     int* p;

     p = &number;


指针的注意点:

     

1.不能把常量赋值给一个指针变量

2.定义指针变量的时候,写的什么类型,将来指针变量就只能指向(保存)什么类型的变量(地址)

3.指针变量没有初始化,不要间接访问其存储空间

4.指针变量也可以定义的时候初始化

5.多个指针变量可以指向同一块存储空间

指向指针的指针

如果要定义一个指针保存一个变量的地址,把变量的类型拷贝过来,然后加上一颗星

如果要定义个指针保存另一个指针的地址,把指针的类型和星拷贝过来,然后加上一颗星

    int i = 10;

    int *ip = &i;

    int **ipp = &ip;

    int ***ippp = &ipp;



           指针要分类型的原因,

    根据指针变量去取值的时候,指针变量并不知道要取多少个字节的值,

    所以通过定义指针变量的时候的变量类型告知指针变量存取值的时候存取多少个字节


指针与数组

1:指针可以用来定义变量

int *p = #


2:指针可以作为参数进行传递(传递的是地址)

void change(int *v1)

{

    *v1 = 22;

}


3:指针可以作为函数的返回值

返回只真的函数


 数组元素的访问方式总结:

     1.数组名[下标];

     2.指针变量名[下标];

     3.*(指针变量名 + i);

int ages[3] = {1, 4, 7};

数组的地址就是所占用存储空间中字节地址最小的直接的地址

          数组首元素的地址就是数组的地址

          数组名就是数组的地址

int *ap;

        ap = &ages[0];

&ages[0] == ages == ap

注意:指针是可以进行加法运算的, 但是和普通变量的加法运输不一样

       指针变量加1是加指针变量类型所占用存储空间的字节数

不要返回数组保存的字符串给函数调用者,因为当函数执行完毕,数组就释放了


指针与字符串:

用指针来接收一个字符串,这个字符串是一个字符串常量

char *name = "jyk";

定义字符串的两种方式:

     1.利用数组

     char name[] = "jyk";

    特点:字符串中的内容是可以修改的

    使用场合:字符串的内容需要经常修改的时候用数组

     

     2.利用指针

     char *name = "jyk";

    特点:字符串中的内容是不可以修改的

    使用场合:字符串中的内容不需要修改,或者字符串需要经常使用(性能比较高)














0 0
原创粉丝点击