精华内容
下载资源
问答
  • C语言声明数组变量时,在什么情况下,可不指定数组大小
    千次阅读
    2019-10-02 17:37:04

    只有以下三种情况:

    (1)数组是形式参数

    (2)数组声明的同时进行了初始化

    (3)数组的存储类型为extern

    参考自:《C语言程序设计:现代方法》P334

    转载于:https://www.cnblogs.com/jinhong-lu/archive/2013/02/11/4559560.html

    更多相关内容
  •  C语言声明数组变量时,在什么情况下,可不指定数组大小  只有以下三种情况:  (1)数组是形式参数  (2)数组声明的同时进行了初始化  (3)数组的存储类型extern
    
    C语言声明数组变量时,在什么情况下,可不指定数组大小

      只有以下三种情况:

      (1)数组是形式参数

      (2)数组声明的同时进行了初始化

      (3)数组的存储类型为extern


    /*自己还未验证*/

    展开全文
  • 数组大小计算: int a[3]; //一个整型数占用空间4个字节,3个占用空间12个字节 char b[3]; //一个char型占用空间1个字节,三个占用空间3个字节 printf("a数组大小是:%d\n",sizeof(a)); printf("b数组大小...

    一.数组的大小计算(用sizeof)

    	int a[3];   	一个整型数占用空间4个字节,3个占用空间12个字节
        char b[3];		一个char型占用空间1个字节,三个占用空间3个字节
        
    		printf("a数组的大小是:%d\n",sizeof(a));
            printf("b数组的大小是:%d\n",sizeof(b));
            printf("一个整数的空间是:%d\n",sizeof(a[0]));
    		printf("一个字符型数的空间是:%d\n",sizeof(char));: 两个数组有什么相同点,不同点
       		 相同:数组的元素个数为3
        	 不同: 1、数组的类型不同  
        	 	    2、数组的内存大小不同
    		
         问:如何计算数组中元素的个数。      数组的总大小/一个类型的大小    
    	 printf("a数组有%d个元素\n",sizeof(a)/sizeof(a[0]));  或者 sizeof(a)/sizeof(int)
    

    二.数组的传参,传的是地址 :

    当我们学到指针的时候,就可以将函数中的参数 int array[ ] 直接

    改为 int *array

    	void hanShu(int array[]){      改成指针:void hanShu(int *array)
    
    	}
    	
    	int main(){
    		int array[1] = {3};	
    		hanShu(array);
    	}
    
    	
    	将array这个数组进行传参时,有两种方式:
    		1. hanShu(array);
    		2. hanShu(&array[0]);  
    		 总结:数组名 或者 取数组第一项  都可以作为数组的地址使用
    		(因为数组的第一项就是表示数组的地址)
    

    三.数组的形参仅表示是一个地址,中括号中数组的大小是无效的

    **void hanShu(int a[ ])
    .

    1.形式参数中,虽然写的一个数组的样子,中括号中数组的大小是无效的!!!!!!
    2.这里不管中括号中写多少,都不能代表形参数组有多大!
    3.这里的中括号的作用仅仅用来表示:该参数是一个数组,是一个(地址!)在问

    windows啊哈c中,用4个字节表示地址,linux64位中用8个字节表示。**

    .

    四:代码如下:

    #include <stdio.h>
    #include <stdlib.h>
    
    				//第一个参数是数组的首地址,第二个参数是数组的个数
    void arrayPrint(int datas[],int cnt) //形式参数中,虽然写的一个数组的样子,中括号中数组的大小是无效的!!!!!!
    								//这里不管中括号中写多少,都不能代表形参数组有多大!
                                    //这里的中括号的作用仅仅用来表示:该参数是一个数组,是一个(地址!)在问windows啊哈c中,用4个字节表示地址,linux64位中用8个字节表示。
    {
    	//printf("数组的大小是:%d\n",sizeof(datas));
        //printf("一个int数据的大小是:%d\n",sizeof(int));
    	//printf("函数调用中:datas 数组中元素个数为 %d个\n",sizeof(datas)/sizeof(datas[0]));
    
    	int i;
    	for(i=0;i<cnt;i++){
    		printf("%d ",datas[i]);
        }
        putchar('\n');   //putchar 输出一个字符  getchar()获取一个字符的输入,当时用在过滤回车
    
    }
    
    int main()
    {
    
    	int array[3] = {11,22,38};
        //printf("数组的大小是:%d\n",sizeof(array));
    	//printf("array 数组元素个数为 %d个\n",sizeof(array)/sizeof(array[0]));
    	arrayPrint(array,sizeof(array)/sizeof(array[0]));
        
    	arrayPrint(&array[0],sizeof(array)/sizeof(array[0]));  //数组名 或者 取数组第一项  都可以作为数组的地址使用(因为数组的第一项就是表示数组的地址)
          
         
    	system("pause");
    	return 0;
    }
    
    
    展开全文
  • 现在有个需求:我有一一大串不大小固定的数据需要添加到数组中,如果给数组固定死大小的话,太好,后来找到了方法... //先定义大小为0的数组,后面经过temp.ToArray转换成数,实现数组动态大小 string[] nullList = ...

    现在有个需求:我有一一大串不大小固定的数据需要添加到数组中,如果给数组固定死大小的话,不太好,后来找到了方法参考这个博客

                string[] roleRangeAllowUsername = new string[0]; //先定义大小为0的数组,后面经过temp.ToArray转换成数组,实现数组动态大小
                string[] nullList = new string[0]; //用来给temp初始化用
                List<string> temp = nullList.ToList(); 
                temp.Add(1);// 给temp添加数据
                roleRangeAllowUsername = temp.ToArray(); // 将temp转换成数组

     

    展开全文
  • 假如我们有一个数组myarr,我们想把myarr按我们指定数组大小把数组分割拆分多个小数,此时我们可以用js的数组函数slice将数组进行分割。具体方法如下。slice(数组)用法:array.slice(start,end)解释:该方法是...
  • 前言: ...二维数组的说法是准确的,因为C/C++都存在二维数组的数据结构,只不过一些入门教程为了让初学者快速理解产生的名词,所以在C/C++仅存在数组数组的说法。二维数组的地址存储方式...
  • 数组大小设置成变量

    千次阅读 2018-09-06 11:18:46
    按照常识,数组大小能设置成变量的。但是,也有例外的情况。 最近在刷题的时候,发现有些答案中数组大小直接设置成一个变量,原以为是错误的写法,查了资料后发现这样写也是对的。   这是GUN C的九条...
  • c#固定数组大小In C#, an array can be declared with a fixed size length and a variable length. Sometimes it's required that we need to have an array of fixed length. In this tutorial, we will learn how...
  • 指定了长度的返回的是变量,属于值传递;没有指定长度的返回的是指针,属于引用传递,用的是切片文法 验证例子 arr := []int{1, 2, 3} arr1 := [3]int{1, 2, 3} p := arr p1 := arr1 p[0] = 10 p1[0] = 11 fmt....
  • 我希望能够GTK ComboBox声明一个固定长度字符串的常量数组 . 是否可以在ADA中使用两个参数?此代码允许通过声明字符串来设置数组大小 . 是否有可能以某种方式用参数替换规范中的常量?一个简单的数组不允许判别 ...
  • 今天调试一个C++程序,在一个函数中定义了一个一维数组,...答案是否定的,我们在定义C++中的数组时,一定要指定数组大小。 但是向小编代码中那样定义数组就一定要指定数组大小了,因为这种定义数组的写法是C语言...
  • 在字符型的数组中我们可以使用 strlen() 来获取当前数组的长度,对于其他类型的数组,这个方法就适用了。由于经常会遇到计算数组长度的问题,经过思考,考虑通过一个函数来实现数组长度的计算。思路是这样的:通过...
  • 很多人c和c++的初学者都知道这样一个事实:数组不能直接作为函数的形参,当...}这里函数的形参虽然指定数组大小,但实质上编译器是认,在编译器严重,被传入的只是一个int*类型的指针,也就是说,在此例的函数中
  • Java HashMap计算初始数组大小过程

    千次阅读 2020-06-29 17:24:01
    HashMap HashMap相信大家都很熟悉了,我们经常用来存放数据的一种容器。HashMap实际上是数组加链表的数据结构。在JDK1.8后又引入了红黑树...1.new HashMap时候没有指定大小 HashMap<String,Integer> hashMap = new
  • //指定数组大小是5 vector a(5,3); //数组大小5,并初始化数组所有元素值3 二维: cin>>m>>n;//m行n列 vector<vector > a(m, vector(n)); //这行注意两个> >中间要加空格,否则会被认为是重载>>运算符 for ...
  • 数组作为函数参数

    千次阅读 多人点赞 2018-02-03 21:57:55
    数组作为函数参数 数组元素的作用与变量相当,一般来说,凡是变量可以出现的地方,都可以数组元素代替。因此,数组元素也可以用作函数实参,其用法与变量... 数组元素可以用作函数实参,能用作形参。因为形参是
  • 数组名作函数参数

    千次阅读 多人点赞 2019-05-31 18:46:10
    实参数组形参数组类型应一致(现都int型),如一致,结果将出错。 (2) 需要特别说明的是: 数组名代表数组首元素的地址,并代表数组中的全部元素。因此用数组名作函数实参时,不是把实参数组的值传递给形参,而只是...
  • C语言数组名作为函数参数

    千次阅读 2021-02-10 14:09:05
    数组名作为函数参数传递时,会将数组整个传递给目标函数 int main(){ int import(),returnNum;...//函数类型不指定,则默认int型 int import(int a[10]){ for (int i = 0; i < 10; ++i) { printf("%d\n",a[i]
  • C语言数组作为函数参数

    万次阅读 多人点赞 2019-02-24 20:24:59
    一:数组元素作为函数的实参 数组元素就是变量,与普通变量没有区别,将数组元素传送给形参,实现单向的值传递。 #include &lt;stdio.h&gt; float max(float x,float y){ if(x &gt; y) return x; ...
  • 数组作为参数传递给python

    千次阅读 2020-11-26 10:49:08
    现在,我需要声明大小为20的数组并将该数组传递给函数.期望数组的函数:function(*args)args是function()的输入.谁能帮我,如何在python中传递数组?解决方法:当您说“数组”时,我假设您的意思是Python列表,因为在...
  • 如何确定C语言中数组大小

    千次阅读 2019-12-16 11:00:02
    如何确定C语言中数组大小? 也就是说,数组可以容纳多少个元素?
  • 方法1:function chunk(arr,size){ var arr1=[]; for(var i=0;i;i=i+size){ var arr2=arr; arr1.push(arr2.slice(i,i+size)); } return arr1; }
  • 4、不可以第一维和第二维的长度都不指定。 综上所述,至少指定第二维的长度。 原因:一维数组存放在一段连续的内存中,二维数组的维度是逻辑上的概念,而实际上,二维数组在内存中也是一段连续的空间,与一维数组...
  • 形参定义成指定大小数组

    千次阅读 2012-04-03 10:34:24
    今天在百度知道上看见一个问题。 类似 char *func( char str[10]) {  printf(“len= %d\n”, sizeof(str)); ... charstr[100] = “there is a problem”;...首先对func函数了解,形参char str[10],
  • 1 引言定长数组包在平时的开发中,缓冲区数据收发时,如果采用缓冲区定长包,假定大小是 1k,MAX_LENGTH 1024。结构体如下:// 定长缓冲区//公众号:c语言与cpp编程struct max_buffer{int len;char data[MAX_...
  • C++中数组作为函数参数的注意问题

    千次阅读 2020-07-14 16:20:43
    C++中数组作为函数参数的注意问题 1 问题引入 从《剑指Offer》上的相关问题,下面的输出是什么? #include<iostream> using namespace std; int GetSize(int data[]) { return sizeof(data); } int main() {...
  • C# 传递数组参数_一维数组_二维数组

    千次阅读 2019-02-13 16:13:21
    using System; using System.Collections.Generic; using System.Linq; using System.Text;...namespace _1206_传递数组参数_一维数组_二维数组_ { class Program { //在C#中,可以数组作为...
  • 数组作为函数参数传递

    万次阅读 多人点赞 2018-03-08 20:34:51
    由于数组不能复制,所以无法编写使用数组类型形参的函数,因为数组会被自动转化指针。 一、一维数组 1.三种定义形式: &nbsp; [cpp] view plain copy print?void&nbsp;printvalues(int...
  • 数组作形参时的注意点

    千次阅读 2019-02-15 11:00:19
    1、对于一维数组来说,数组作为函数参数传递,实际上传递了一个指向数组的指针,在c编译器中,当数组名作为函数参数时,在函数体内数组名自动退化指针。此时调用函数时,相当于传址,而不是传值,会改变数组元素的...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 401,185
精华内容 160,474
关键字:

形参数组为什么可以不指定数组大小

友情链接: DaFeiJi.rar