精华内容
下载资源
问答
  • 那么为什么作为函数形参数组和指针申明可以互换呢? 这是一种便利。 由于数组会马上蜕变为指针, 数组事实上从来没有传入过函数。允许指针参数声明为数组只不过是为让它看起来好像传入了数组, 因为该参数可能在函数...
    那么为什么作为函数形参的数组和指针申明可以互换呢?
    这是一种便利。
    由于数组会马上蜕变为指针, 数组事实上从来没有传入过函数。允许指针参数声明为数组只不过是为让它看起来好像传入了数组, 因为该参数可能在函数内当作数组使用。特别地, 任何声明“看起来象” 数组的参数, 例如
    void  f(char  a[])
    {  ...  }
    在编译器里都被当作指针来处理, 因为在传入数组的时候,那正是函数接收到的.
    void  f(char  *a)
    {  ...  }
    这种转换仅限于函数形参的声明, 别的地方并不适用。如果这种转换令你困惑, 请避免它; 很多程序员得出结论, 让形参声明“看上去象” 调用或函数内的用法所带来的困惑远远大于它所提供的方便。
    展开全文
  • #include //选择排序 从大到小 void fun(int a[] ,int n)//进的数组地址的形式为a[] 有点特殊, 不像int *p,的是int型的地址 { int i,j; int temp; for(i=0;i;i++) { for(j=i+1;j;j++) {
    #include<stdio.h>
    //选择排序 从大到小
    void fun(int a[] ,int n)//传进的数组地址的形式为a[] 有点特殊, 不像int *p,传的是int型的地址
    {
        int i,j;
        int temp;
        for(i=0;i<n-1;i++)
        {
            for(j=i+1;j<n;j++)
            {
                temp=a[i];
                a[i]=a[j];
                a[j]=a[i];
            }
        }
    
    
    }
    
    main()
    {
        int i;
        int str[3]={1,2,3};
        fun(str,3);//传的是str的首地址,&str[0]也可以
        for(i=0;i<3;i++)
        printf("%d",str[i]);
        printf("\n");
    }
    展开全文
  • 用指针变量作函数形参接收数组地址,解决10个整数按由大到小顺序排序问题 #include using namespace std; void select_Sort(int *p,int n){ int i,j,k,t; for(i=0;i1;i++){ k=i; for(j=i+1;j){ if...

    用指针变量作函数形参接收数组地址,解决10个整数按由大到小顺序排序问题

    #include <iostream>
    using namespace std;
    
    void select_Sort(int *p,int n){
        int i,j,k,t;
        for(i=0;i<n-1;i++){
            k=i;
            for(j=i+1;j<n;j++){
                if(*(p+j)<*(p+k))
                    k=j;
                t=*(p+k);
                *(p+k)=*(p+j); 
                *(p+j)=t;
            }
        }
    }
    int main(){
        int a[10],i;
        cout<<"enter the original array:"<<endl;
        for(i=0;i<10;i++){
            cin>>a[i];
        }
        cout<<endl;
        select_Sort(a,10);
        cout<<"the sorted array:"<<endl;
        for(i=0;i<10;i++){
            cout<<a[i]<<"  ";
        }
        cout<<endl;
        return 0;
    }

     

    展开全文
  • * 问题描述:用指针作形参数组排序 * 程序输出:数组 * 问题分析: * 算法设计:略 */ #include using namespace std; int main(){ void select_sort(int *p,int n);//定义函数 int a[10]={5,8,6,...
    /* 
    * Copyright (c) 2012, 烟台大学计算机学院                     
    * All rights reserved.                     
    * 文件名称:test.cpp                     
    * 作者:樊露露                    
    * 完成日期:2012 年12月16日                     
    * 版本号:v1.0                   
    *                     
    * 输入描述:无                     
    * 问题描述:用指针作形参给数组排序                  
    * 程序输出:数组
    * 问题分析:                    
    * 算法设计:略                     
    */         
    #include<iostream>
    using namespace std;
    int main(){
    	void select_sort(int *p,int n);//定义函数
    	int a[10]={5,8,6,97,1,3,4,87,13,19},i;
    	select_sort(a,10);       //引用函数
    	cout<<"排序后的数组为:"<<endl;
    	for(i=0;i<10;i++)  //输出函数
    		cout<<a[i]<<' ';
    	cout<<endl;
    	return 0;
    }
    //排序函数代码
    void select_sort(int *p,int n)//用指针变量作形参
    {
    	int i,j,t,k;
    	//i的循环(第一层循环)从0开始,这是理所当然的。到n-2结束,因为到n-2时与n-1比较过,就不用循环到n了。
    	for(i=0;i<n-1;i++){
    		//将i赋值给k,使下面的排序从i开始,i前面已经排好的不用管了。
    		k=i;
    		//j的循环(第二层循环)从i+1开始,到n-1结束。排序要逐个的比较。
    		for(j=i+1;j<n;j++)
    			//如果后一个数大于前一个数,将j赋值给k
    			if(*(p+j)>*(p+k))
    				k=j;。
                //排序,用指针来接收数组地址。
    			t=*(p+k);      
    			*(p+k)=*(p+i);
    			*(p+i)=t;	
    	}
    }

    展开全文
  • 结论:QT信号槽函数形参不支持数组的引用 实际代码 //filename:abc.h void sig_add_line(int number, const char (&line)[SIZE]); moc编译后生成的函数 //filename:moc_abc.cpp void RC::sig_add_line(int _t1,...
  • C 语言中关于通过形参传递数组的长度计算的一些思考 一 背景 学习 C 语言的过程中,计算数组的长度经常会...思路是这样的:通过形参数组传递给长度计算函数,长度计算函数计算完成之后返回数组长度。但是在实际...
  • paixu后面数组z未加括号是对的,这就是实参在定义中已经与形参对应了,默认是数组不需要要加,如果加了出现如下报错。
  • 那么我现在要向一个函数里面传递一个数组,我现在只知道在定义形参的时候定义为 ``` void fun(char *x ) ``` 或者 ``` void fun(char x[] ) ``` 的形式。 但是经过我自己的测试,在函数里面调用sizeof(x...
  • 函数形参--数组操作

    千次阅读 2013-09-12 19:42:08
    函数需要处理数组函数体不依赖于数组的长度时应使用指针形参,其他情况下应使用引用形参。 指针形参的优点是可以明确地表示函数所操作的是指向数组元素的指针,而不是数组本身,而且可以使用任意长度的实...
  • 函数形参中的数组传递

    千次阅读 2010-09-23 16:48:00
    数组形参可声明为数组的引用,如:function...例子:函数功能,得到当前时间,写到字符数组。#include #include using namespace std; void GetTimeStr(char (×tr)[32] ) { time_t t = time(0); strftim
  • const形参数组形参

    2019-09-23 12:13:28
    const形参形参是const时,要注意顶层const: const int ci = 42; //不能改变ci,const是顶层的 int i = ci; //正确,当拷贝ci时,忽略了它的顶层const int *const p = &i; //const是顶层的,不能给p...
  • 在C语言中,若我们在主函数中定义了一个数组,并给数组赋予了初值,在之后,若有函数需要调用,且需要用到该数组的长度,该怎么来操作。 在下面的代码中定义了一个数组,在main函数中用sizeof函数来计算数组的长度,...
  • 简介======================================================================================================一、vector 类型的形参通常,...,调用含有普通的非引用vector形参函数将会复制vector的每一个元素...
  • 自己在敲函数时想要自己建立一个子函数,子函数的作用是进行一些运算,它的形参是一个二维数组,数据类型是整型。返回值是个整数,我在函数申明时写成了这样  int jisuan(int a[ ][ ]) 这是一种错误的写法,一般...
  • //如果数组作为函数参数,数组形参退化为指针 //void print_array(int a[1], int n) //void print_array(int a[], int n) //如果数组作为函数参数,数组形参退化为指针 //void print_array(int a[1], int n) //void...
  • 我们知道,用模板的时候可以为他提供两种类型的模板形参:一种是类型模板形参,一种是非类型模板形参。例如如下声明: templateclass T>void foo(T t); //用的类型模板形参 templateclass T,int n>void ...
  • void f(int b[]) //数组函数形参 {  cout } void main() { int a[5]={1,2,3,4,5};  cout  f(a); } 程序运行结果输出的两个值(实参数组地址和形参数组地址)是一样的。 说明当实参和形参都是数组...
  • 说道求数组长度,可能你首先会想到用以下公式 int a[10] = {...}; sizeof(a)/sizeof(int) 或许,以下模版函数来得更加简单高效? #include using namespace std; template void print(T(&t)[N]) {  for (size_...
  • 数组作为函数形参

    2020-03-09 22:04:24
    数组作为函数形参会退化为指针...//以上三种形参是等价的,数组的方括号在函数形参中是无意义的,但是void sort_array(int a[0]);会报错,因为方括号中不能为0 再举个例子说明: 从图中的代码可以看出,j并不...
  • 函数中以数组作为形参的方法

    千次阅读 2016-07-28 15:02:36
    本文介绍了三种在函数中以数组作为形参时的处理方法,重点介绍C++11标准是如何管理数组大小的。 数组的两个特殊性质对我们定义和使用作用在数组上的函数有影响,这两个性质分别是: 不允许拷贝数组以及使用数组时...
  • 函数中以数组作为形参

    千次阅读 2018-09-18 14:54:15
    说明: 数组的两个特殊性质对我们定义和使用作用在数组上的函数有影响,这两个性质分别是: 不允许拷贝数组;...尽管不能以值传递的形式传递数组,但是我们可以把形参写成类似数组的形式: //尽管形式不同...
  • 指针数组函数形参

    千次阅读 2018-10-23 13:43:00
    在设计函数过程中,想要函数参数传入一个指针数组,多为字符串数组,在函数形参的设计上有两种思路,具体以下列两种应用场景为说明 一、字符串处理函数strsort 从程序设计角度来看,将多个字符串传递给函数处理时...
  • 还是有差别的 虽然大多数时候都可以相互用最大的差别就是指针可以改变,可以通过指针...举个例子:(分别作为形参) int num[10], *p; p = num;//此时p指向数组的第一个元素 在主函数里调用两个函数 1 Sum(num);
  • 数组指针作为函数形参时,能作为函数实参的是二维数组数组指针 c.当二维数组作为函数形参时,能作为函数实参的是二维数组数组指针 d.当指针数组作为函数形参时,能作为函数实参的是指针数组,二级指针,一级...
  • C-函数中的数组形参

    2020-06-03 22:17:34
    数组名就是首位内存地址、就是指针 #include <stdio.h> #include <stdlib.h> void print_r(int arr[]){//不论是*arr arr[8888] arr[] 都相当于一个指向数组首元素的指针 int len=sizeof(arr)/sizeof...
  • 多维数组指针和函数形参

    千次阅读 2014-07-21 10:51:52
    函数形参为数组时: 如果为一维数组数组大小可以不写,数组名在形参中退化为指针 void foo(int a[]) { } 调用: int *p; int a[10]; p=a; void foo(p); void foo(a); 是合理的 如果为二...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 109,917
精华内容 43,966
关键字:

函数形参传数组