07 值传递和地址传递
1,C语言传递参数(或者赋值)可以是值传递,也可以传递指针,传递指针也叫地址传递
2,默认传递值的类型:基本数据类型(整型类型,小数类型,字符类型),结构体,共用体
默认传递地址的类型:指针,数组
3,值传递
①将变量指向的存储内容,在传递/赋值时,拷贝一份给接收变量
4,地址传递
也叫指针传递,如果是指针,就将指针变量存储的地址,传递给接收变量,如果是数组,就将数组的首地址传递给接收变量
1 #include<stdio.h> 2 3 void main() { 4 int num = 10; 5 int* p = # //p指向num 6 int* p2 = p; //注意没有&,不是传递p的地址,而是传递p内存储的值即num的地址给p2,所以p2也执行num 7 *p2 = 5; //因为p2指向num,所以这里改变了num的值,num=5 8 9 printf("num=%d *p=%d *p2=%d\n", num, *p, *p2); 10 11 }