C语言的指针问题
指针中存放的一个内存地址;
int n = 10;
int* pt = &n;
printf("n=%d *pt=%d\n",n,*pt);
printf("&pt=%p\n",&pt);//&pt 输出的是指针的自身地址
printf("pt=%p\n",pt);//pt 输出的是指针的内存空间中存储指向地址
printf("*pt=%d\n",*pt);//*pt 输出的是指针所指向的内存中的值
基本类型都有对应的指针类型,形式为 数据类型* 指针名,对应的数据类型指针只能指向对应数据类型。
C语言中在传递参数或赋值时可以是值传递也可以是指针(地址)传递:
默认传递值的类型:
基本数据类型,结构体,共用体
默认传递地址的类型:
指针,数组
1)值传递:将变量指向的存储数据,在传参或赋值时,拷贝的变量的值;
2)指针(地址)传递:如果是指针,就是将指针变量存储的地址传递给接收变量,如果是数组,就是将数组的地址传递给接受变量;