首页 > 其他分享 >C语言学习笔记-地址和指针

C语言学习笔记-地址和指针

时间:2022-10-18 22:14:54浏览次数:60  
标签:变量 val int 笔记 C语言 地址 ptr 指针

1 背景

嵌入式开发的时候频繁使用指针数组,以前本科的时候学的都忘了,因此接着学习GD32固件库学习的机会系统的看了一下书,并做出整理

2 查找地址:&运算符

&主要是给出变量的地址

2.1 示例代码

int main() {
    int a=10;
    printf("%d,%p\n",a,&a);

}
//输出结果
10,0061FF1C

分别输出了变量a的值以及a的地址值

3 指针

指针是c语言最终的概念之一
什么是指针,这里给出一个我认为最好理解的解释,指针是一个值为内存地址的变量,也就是说,指针的值,都是地址。
假设一个指针变量为ptr,则我们可以给变量赋值:

ptr=&pooh;//这里ptr是变量,而&pooh是地址值,是不变的常值

//因为ptr是指针变量
ptr=&bah;

4 间接运算符:*

ptr=&bah;
//利用间接运算符获取bah变量的值
val=*ptr;
//将上面的结合起来看
val=bah;

关于地址运算符*的一般注解:
*+指针名或者地址,表示给出该地址对应的值。

int main() {
    int a=10;
    int *ptr; //声明指针
    int val;
    ptr=&a;
    val=*ptr;
    printf("val=%d,ptr=%d\n",val,ptr);

}

//结果
val=10,ptr=6422292

5 使用指针在函数间通信

#include <stdio.h>
void interchange(int *u,int *v);
int main() {
    int a=10;
    int b=5;
    interchange(&a,&b);
}
// u为地址值,*u为a的值
void interchange(int *u,int *v)
{
    int temp;
    temp=*u;
//如果
 //   temp=u;//给的是地址值
    *u=*v;
    *v=temp;
}

注意这里u的值是&a,所以u为x值,v为b的值,借用中间变量即可完成数值交换;

标签:变量,val,int,笔记,C语言,地址,ptr,指针
From: https://www.cnblogs.com/tongwumiracle/p/16804356.html

相关文章