外贸网

  • 首页
  • c语言的形参可以设为指针型的如 int *a ,但还可以设为 int &a 想问这两个的差别 c语言编程 int *a和int a [ ]有区别吗?

    作者:媒体   更新日期:2024.06.02
    int *a 是用指针变量做形参.
    int &a 是用引用做形参.

    区别如下:

    用指针的话是间接方式访问传进来的地址对应的变量的内存空间.
    如果是用引用的话,当然c里没有引用的概念, 只c++引进的一个概念.
    引用是变量的别名 , 所以跟直接访问变量本身一样, 只是换个名字而已, 实质是对传进来的变量本身操作, 而并非拷贝.

    int *a 是指针
    int &a 是引用。

    int *a 是指针
    int &a 是引用。

    不过引用是C++中的,C中是没有引用的。。。

    int *a 形参是指针,int &a 形参是引用.c语言中只有指针的概念,c++中才有引用的概念。指针是间接方式访问传进来的地址对应的变量的内存空间;引用是变量的别名 , 所以跟直接访问变量本身一样, 只是换个名字而已, 实质是对传进来的变量本身操作。

    c语言编程 int *a和int a [ ]有区别吗?

    int *a是定义一个整型指针变量a。
    int a [ ]没有这种写法。
    int *a[]
    1、定义a是一个数组。
    2、每一个数组的元素是一个指针,指向一个整数。
    (int *)a 将指针变量a强制转换为整型指针,说明a一般不是一个整型指针,也可以是个整型指针。
    int (*a)[]
    1、定义a是一种指针。
    2、a指向一种整数数组。

    扩展资料数组的创建:在创建数组时,我们必须定义数组的类型和大小,数组的大小不能为0,数组中的元素类型都是相同的。
    int arr[10];//[]内必须是常量/常量表达式(3+8),不能是一个变量(x...)
    数组的初始化:在数组创建时,我们也要必须为数组初始化。
    int arr1[3] = {1, 2, 3};
    int arr2[] = {1, 2, 3};//在这里,我们arr[3]里边的数字可以不用写;
    int arr3[3] = {1, 2};//也是可以的,只是把最后一个数初始化为0了而已
    int arr4[3] = {1, 2, 3, 4};//是不可以的,不能超过数组长度
    char arr5[3] = {'a', 98, 'c'};//因为是字符类型,所以98其实就是字符'b'
    char arr6[] = "abcdef";
    特点
    1、数组是相同数据类型的元素的集合。
    2、数组中的各元素的存储是有先后顺序的,它们在内存中按照这个先后顺序连续存放在一起。
    3、数组元素用整个数组的名字和它自己在数组中的顺序位置来表示。例如,a[0]表示名字为a的数组中的第一个元素,a[1]代表数组a的第二个元素,以此类推。
    参考资料来源:百度百科—数组

    一个用指针做参数,一个是用引用做参数。
    c++里引用很常用的,引用就相当于一个变量的别名,举个例子:
    int a=10;
    int &b = a; //这里b就是a的引用,也就是a的别名
    如果你改变b,a也会跟着改变,如:
    b = b+10;
    这时b为20,a也为20了