变量的地址,每个变量都是存放在内存种的某个位置的。

如何查看一个变量的地址?

int  a;

&a;

printf("%p", &a);

指针变量:是一类专门存储其他变量的地址的变量。

int * p;  // p是一个指针变量,它所指向的变量的类型为整型变量

p存储哪个变量的地址,我们就说p指向了谁


p = &a;

如何通过指针变量获得它所指向的变量呢?

*p   ====  a

 

需要注意的问题

1)指针变量一定要初始化后才能够使用

2)指针变量的类型要和它实际指向变量的类型保持一致

 

int * p = NULL;  

表示空指针,没有指向任何变量。

 

 

指针变量的用途?

1)用来作为函数的参数,实现特殊的功能

通过指针作为函数的参数,实现在函数内部修改实参的值。

变量的地址,每个变量都是存放在内存中的某个位置的。

如何查看一个变量的地址?

int  a;

&a;

printf("%p", &a);

指针变量:是一类专门存储其他变量的地址的变量。

int * p;  // p是一个指针变量,它所指向的变量的类型为整型变量

p存储哪个变量的地址,我们就说p指向了谁


p = &a;

如何通过指针变量获得它所指向的变量呢?

*p   ====  a

 

需要注意的问题

1)指针变量一定要初始化后才能够使用

2)指针变量的类型要和它实际指向变量的类型保持一致

 

int * p = NULL;  

表示空指针,没有指向任何变量。

 

 

指针变量的用途?

1)用来作为函数的参数,实现特殊的功能

通过指针作为函数的参数,实现在函数内部修改实参的值。

void swap1(int *a, int *b)

{

    int t = *a;

    *a = *b;

    *b = t;    

}

int main()

{

    int x=9, y=8;

    //swap(x,y);

    swap1(&x, &y);

    printf("%d,%d", x, y);

    return 0;

}

 指针变量作为函数的形参,实参应该传递指针或者普通变量的地址(形参和实参的类型要求一致)如果想要得到每个字符串,可以用二维字符数组名+行下标的方式来得到每行字符串

C语言指针总结1

 

2)用指针可以更方便的处理连续的数据,通常是和数组结合使用(也更容易出错)

指针和数组之间的关系,指向数组元素的指针,在这种情况下,指针可以进行一些运算

指针可以和整数进行算术运算  p+1  p+d  p-1 p-d  p++  p--

指针变量进行算术运算的含义?

并不是简单的数值加1,而是根据指针所指向的类型的大小来决定得到一个地址值,p+sizeof(int)   ===>    p+d

通常用在通过指针访问数组中的元素。

两个指针可以进行比较  p1 < p2

ps:*p++、*(p++)以及(*p)++区别:

1、*p++与*(p++)是等价的,表示取p所指单元的值,p指向下一单元,即p自加1。

2、*p++是指下一个地址。

3、(*p)++是指将*p所指的数据的值加一。

相关文章: