2019-05-07:数据结构(传参 形参中 &p 和 *p 及 p之间的区别)

对于严版 数据结构(传参 形参中 &p 和 *p 及 p(p[ ])之间的区别)

#include 
/*
参考  c primer plus  p270
     c语言程序设计现代方法 p186
*/
/*可以 传 *a 也可 a[]:test(int a[], int n)
引用 & 可以修改被费用的数据,与指针差不多,按值传递在函数内部修改了,
但在函数外部还是原先那个值
*/
void test(int *a, int n){
    printf("%d\r\n",a[n]);
}
void test2(int *b, int n){
    //*间接运算符是用来取指针所指的 值 
    printf("%d\r\n", *(&b[n]));
    //地址运算符号 是用来获取指定指针所指的地址 
    //或者指定元素的地址
    printf("%d\r\n", &b[n]);
}
void test3(int b, int n){
    //*间接运算符是用来取指针所指的 值 
    printf("%d\r\n", (&b[n]));
    //地址运算符号 是用来获取指定指针所指的地址 
    //或者指定元素的地址
    printf("%d\r\n", b[n]);
}
int main(){
    /*指向复合常量的指针
    (复合字面量是指通过指定包含元素而创建的没有名字的数组
    如:(int[]){ 1, 3, 6, 5, 4 };
    */
    int *p = (int[]){ 1, 3, 6, 5, 4 };
    int a[] = { 1, 6, 5, 8 };
    printf(" *a的值:%d\r\n", *a);
    test(a, 2);
    test2(p,1);
    system("pause");
}
2019-05-07:数据结构(传参 形参中 &p 和 *p 及 p之间的区别)_第1张图片
)16SMK8QI2AR~SW27V)6S42.png

你可能感兴趣的:(2019-05-07:数据结构(传参 形参中 &p 和 *p 及 p之间的区别))