精华内容
下载资源
问答
  • 2017-04-07 10:24:19

    const int limit=100;

    char plum[limit];

    error:integral constant expression expected(错误,期待整型常量表达式)

     

    我们不想问:“为什么一个const int不能被当作一个整形常量表达式”,这样令人尴尬的问题。

    的确很无语,因为它在C++中是合法的!!!

    更多相关内容
  • C语言数组长度详解

    千次阅读 2022-01-30 16:05:21
    【!求三连!】 C6384警告, 运行发现sizeof(arr)作为实参传递使用时无法计算arr的总字节 只有arr数组写在运用sizeof(arr)同一函数中的直接使用才能计算 ...解决方法,自创数组长度函数,调用求解. ...

    1.求char类型数组  

    #include<stdio.h>
    //库函数strlen  返回数组长度
    
    char arr[10];
    int length = strlen(arr);//接受数组长度

    注意: strlen只能用char*做参数,且必须是以''\0''结尾的!

    2.

    sizeof()运用bug , C6384警告,

    运行发现sizeof(arr)作为实参传递使用时无法计算arr的总字节

    只有arr数组写在运用sizeof(arr)同一函数中的直接使用才能计算

    类似局部变量,【sizeof(arr)/sizeof(a[0]) 】 当数组arr与该语句在同一函数内有效

    (若有循环要在同一循环内有效)

    #define length 10//法一
    
    int arr[10];
    
    int arr_length = sizeof(arr)/sizeof(a[0]);//法二
    #define length 10    //数组初始化长度自定义

    最终通过不断尝试发现较为有效方法用于解题:

    解决方法:C语言没有直接求数组长度的,在解题中,可直接写自己创的长度常量,或者宏定义【#define length 数组初始化长度 】 来代替常量数值

    /*查看常见错误*/


    C++ 标准库参考 | Microsoft Docshttps://docs.microsoft.com/zh-cn/cpp/standard-library/cpp-standard-library-reference?view=msvc-170&viewFallbackFrom=vs-2019

    展开全文
  • C语言 数组长度

    千次阅读 2019-04-29 08:47:13
    借助sizeof()函数 # include <stdio.h> int main(void) { int a[10] = {0}; printf("sizeof(a) = %d\n", ...sizeof(a) = 40 ,数组 a 是 int 型的,每个元素占 4 字节,所以长度为 10 的数组在内存中所占的...

    借助sizeof()函数

    # include <stdio.h>
    int main(void)
    {   
        int a[10] = {0};
        printf("sizeof(a) = %d\n", sizeof(a));
        return 0;
    }
    

    sizeof(a) = 40 ,数组 a 是 int 型的,每个元素占 4 字节,所以长度为 10 的数组在内存中所占的字节数就是 40。而总的字节数除以一个元素所占的字节数就是数组的长度,如下面这个程序:

    # include <stdio.h>
    int main(void)
    {   
        int a[10] = {0};
        // 计算数组中数据长度 :
        // 所有数据的字节数除以一个数据的字节数即为数据的个数 :
        //int length = sizeof(arr) / sizeof(int); //这句也可以
        int cnt = sizeof(a) / sizeof(a[0]);
        printf("cnt = %d\n", cnt);
        return 0;
    }
    

    输出结果是:
    cnt = 10

    这样不管数组是增加还是减少元素,sizeof(a)/sizeof(a[0]) 都能自动求出数组的长度。需要注意的是,它求出的是数组的总长度,而不是数组中存放的有意义的数据的个数。比如定义一个int型的数组:

    int a[10] = {1, 2, 3, 4, 5};
    

    我们只初始化了五个元素,但是 sizeof(a)/sizeof(a[0]) 求出的是 10,而不是 5。换句话说,我们无法通过 sizeof(a)/sizeof(a[0]) 求出数组中有多少个有意义的数据。

    参数传递

    通过传递数组名参数到子函数中,以获得数组长度是不可行的。

    #include<stdio.h>
    
    void test(int arr[])
    {
    	int length = 0;
    	length = sizeof(arr) / sizeof(int);
    	printf("test_数组的总字节数为: %d\n",sizeof(arr));
    	printf("test_数组的长度为: %d\n",length);
    }
    
    int main()
    {
    	// 定义一个整型数组, 并进行初始化赋值9个数据 : 
    	int arr[] = {1,2,3,4,5,6,7,8,9};
    	int length = 0;
    	// 计算数组中数据长度 :
    	// 所有数据的字节数除以一个数据的字节数即为数据的个数 : 
    	length = sizeof(arr) / sizeof(int); 
    	printf("main_数组的长度为: %d\n",length);
    	
    	test(arr);
    	
    	return 0;
    } 
    

    在这里插入图片描述
    代码分析 :
    当将数组作为实参传递到另一个函数中时, 另一个函数的形参相当于一个指针变量, 因为将数组的名作为实参时, 就是将数字的首地址作为实参, 所以在test函数中输出的
    sizeof(arr)其实得到的是一个整型数组的长度(所占的字节数), 所以结果是8, 再用其除以int所占的字节数(4), 结果就是2 。(64位) 。32位机上是1。

    因此,获得数组长度,只能在数组定义所在的代码区中,采用以上方法,才可以达到效果。

    展开全文
  • C语言数组长度极限

    千次阅读 2017-06-18 14:58:39
    今天在做《计算机图学实验》大作业的时候,定义了一个数组用于存放顶点坐标,数组长度为1025*1025,可是总是弹出错误,最后经过上网查找,发现错误原因在于我的数组是在函数体内定义的。 函数体内定义的的数组存在...

    今天在做《计算机图学实验》大作业的时候,定义了一个数组用于存放顶点坐标,数组长度为1025*1025,可是总是弹出错误,最后经过上网查找,发现错误原因在于我的数组是在函数体内定义的。

    函数体内定义的的数组存在于stack,函数体外的或者用static声明的数组存在于data,变量存储的内存空间不同,所以大小限制自然不同。我改为在函数体外定义,果然就正常运行了~

    展开全文
  • C语言 数组中重复的数字解决方法: 题目:在一个长度为n的数组里的所有数字都在0-n-1的 范围内。数组中某些数字是重复的,但是不知道有几个数字重复了,也不知道每个数字重复了几次。请找出数组中任意一个重复的数字...
  • C语言数组大小

    2022-02-09 22:59:58
    通过sizeof()函数得到C语言数组长度
  • c语言数组不确定长度C does not provide a built-in way to get the size of an array. You have to do some work up front. C没有提供获取数组大小的内置方法。 您必须先做一些工作。 I want to mention the ...
  • C语言数组详解

    千次阅读 2021-05-22 01:17:48
    C语言中,数组属于构造数据类型。一个数组可以分解为多个数组元素,这些数组元素可以是基本数据类型或是构造类型。因此按数组元素的类型不同,数组又可分为数值数组、字符数组、指针数组、结构数组等各种类别。本...
  • C语言传入数组自带数组长度的方法

    千次阅读 2022-04-26 17:04:54
    数组作为函数参数传递时,会失去其数组特性,也就是无法使用sizeof()函数计算出数组的大小,比如我们写一个排序函数,排序时我们不仅需要知道数组的首地址,还需要知道数组的大小,但是仅仅把数组名作为参数传递时,无法...
  • C语言 数组长度函数

    2021-01-12 11:56:47
    http://topic.csdn.net/t/20051128/15/4423431.html1.用宏是可以的这样写#define ArraySize(ARR) (sizeof(ARR) / sizeof(ARR[0]))楼上的楼上要加括号的。#include #define ArraySize(ARR) (sizeof(ARR)/sizeof(ARR[0...
  • C语言数组长度

    万次阅读 多人点赞 2020-10-10 21:11:57
    C语言对于不同的数据类型的数组长度方式稍微有不同的地方: 1,对于字符数组长度 第一种使用strlen() #include<stdio.h> #include<string.h> int main() { char a[10]="dmeo"; printf("%d",strlen...
  • 如何通过编程的手段获取某个数组长度呢? 答案是使用关键字 sizeof。 前面说过,用 sizeof 可以获得数据类型或变量在内存中所占的字节数。同样,用 sizeof 也可以获得整个数组在内存中所占的字节数。因为数组中每...
  • 在《C语言的三套标准:C89、C99和C11》一节中我们讲到,目前经常使用的C语言有三个版本,分别是 C89、C99 和 C11。C89(也称 ANSI C)是较早的版本,也是最经典的版本,国内大学几乎都是以该版本为基础进行授课。C99...
  • C语言 数组长度函数

    千次阅读 2013-05-06 08:48:53
    1.用宏是可以的这样写 #define ArraySize(ARR) (sizeof(ARR) / sizeof(ARR[0])) 楼上的楼上要加括号的。 #include ...#define ArraySize(ARR) (sizeof(ARR)/sizeof(ARR[0])) ...printf( "Arr
  • C语言数组长度的计算方法总结(sizeof与strlen)

    万次阅读 多人点赞 2021-07-27 11:50:36
    本文章详细介绍了C语言常见的定义数组的方式,并且详细讨论了strlen与sizeof求解数组的原理和使用情况。适合C语言的初学者阅读。
  • C语言数组长度的计算详解

    万次阅读 多人点赞 2020-05-23 18:23:01
    C语言数组长度的大小可以使用: int main() { int arr[] = {1,2,3,4,5}; int length = sizeof(arr)/sizeof(int); printf("the length of arr is %d\n", length); } 2) 在函数调用中计算数组的长度 上述计算数组...
  • C语言数组是静态的,不能自动扩容,当下标小于零或大于等于数组长度时,就发生了越界(Out Of Bounds),访问到数组以外的内存。如果下标小于零,就会发生下限越界(Off Normal Lower);如果下标大于等于数组长度,...
  • 程序 1 用筛选法求 100 之内的素数 筛选法又称筛法是求不超过自然数 N N>1的所有质数的一种方法据说是古希腊的埃 拉托斯特尼 Eratosthenes 约公元前 274 194 年发明的又称埃拉托斯特尼筛子 具体做法是先把 N 个...
  • C语言数组属于构造数据类型。一个数组可以分解为多个数组元素,这些数组元素可以是基本数据类型或是构造类型。因此按数组元素的类型不同,数组又可分为数值数组、字符数组、指针数组、结构数组等各种类别。 数组...
  • C语言数组长度能用变量指定吗?

    千次阅读 2021-04-22 22:31:11
    疑问:C语言数组长度就真不能用变量指定吗? 回答:不一定。 一、背景简介 C89/C90: C89即ANSI C,ANSI:美国国家标准学会(American Natinal Standards Institute) C90即ISO C,ISO:国际标准化组织...
  • C++中支持变长数组(你可以自行度娘变长数组和alloca函数),但是因为其实在栈上分配,不被推荐使用。做为解决方案,你可以使用C式的malloc函数或者C++式的new函数来在堆上动态分配内存,这样长度是完全可以自定的。2...
  • 就类似于:length=(sizeof(array)/sizeof(array[0]));(array是已定义并赋值的数组)对于...就是希望可以得到array这个数组长度。#include <stdio.h>typedef struct subject{char name[10];double score;} ...
  • c语言获取数组长度的函数

    千次阅读 2020-10-09 18:23:33
    通过宏定义才能实现调取函数直接获取长度的效果,放到函数中不行。 具体原因请看:https://blog.csdn.net/qq_39516859/article/details/82464346 根据上文做出改进,代码: #include<stdio.h> #define ...
  • C语言不支持动态数组,也就是说,数组在定义时就要指定长度,把输入数作为它的长度那就说明定义时没有指定长度,这是不合法的。 使用 指针+动态分配malloc int* p; int n; scanf("%d", &n); p = (int*)...
  • 数组练习解答 1 定义一个名为 a 的单精度实型一维数组 长度为 4所有元素的初值均为 0 的数定义语句 是_ 分析按照一般数据定义语句的格式可以直接写出方法一参看答案 考虑到所有元 素均赋初值时可以省略数组长度可以...
  • C语言动态创建数组并增加数组长度 #include <iostream> #include<stdlib.h> using namespace std; #define InitSize 10 typedef struct{ int *data; int MaxSize; int length; }Customer; void ...
  • 有很详细的注释,可以作为一维数组操作函数进行参考。操作可供选择。 int length(int *array); 返回数组元素个数 int copyarray(int *src, int *dest); 成功返回0, 失败返回-1 int printarray(int *array); 打印 ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 174,256
精华内容 69,702
关键字:

c语言数组长度