精华内容
下载资源
问答
  • C语言数组元素个数计算总结

    万次阅读 多人点赞 2019-08-29 19:44:55
    一维数组 #include <stdio.h> int main(void) { int arr_one[] = {1,2,3,4,5,6,7,8,9,10}; unsigned long int arr_len = sizeof(arr_one)/sizeof(arr_one[0]); printf("%ld\n",arr_len); ...

    通过计算数组的总大小和单个数组元素的大小便可算得数组元素个数。

    一维数组

    /*test_one.c*/
    #include <stdio.h>
    
    int main(void)
    {
    	int arr[] = {1,2,3,4,5,6,7,8,9,10};
    	unsigned long int arr_len = sizeof(arr)/sizeof(arr[0]);
    	printf("%ld\n",arr_len);
    	
    	return 0;
    }
    
    /*测试输出*/
    10
    

    这个比较简单,sizeof(arr)是全部元素的大小,sizeof(arr[0])是单个元素的大小。

    二维数组

    /*test_two.c*/
    #include <stdio.h>
    
    int main(void)
    {
    	int arr[][3] = 	{1,2,3,
    					 4,5,6,
    					 7,8,9,
    					 10};
    	unsigned long int arr_len1 = sizeof(arr)/sizeof(arr[0]);
    	unsigned long int arr_len2 = sizeof(arr[0])/sizeof(arr[0][0]);
    	unsigned long int arr_len3 = sizeof(arr)/sizeof(arr[0][0]);
    	
    	printf("%ld\n",arr_len1);
    	printf("%ld\n",arr_len2);
    	printf("%ld\n",arr_len3); //数组元素总个数
    	
    	return 0;
    }
    
    /*测试输出*/
    4
    3
    12
    

    上面的写法中,arr数组实际上是这样的:

    int arr[4][3] = {1,2,3,
    				 4,5,6,
    				 7,8,9,
    				 10,0,0};
    

    写成这样更好看一点:

    int arr[4][3] = {{1,2,3},
       				 {4,5,6},
       				 {7,8,9},
       				 {10,0,0}};
    

    可以 想象成一维数组的写法:

    int a[3] = {1,2,3};
    int b[3] = {4,5,6};
    int c[3] = {7,8,9};
    int d[3] = {10,0,0};
    
    int arr[4] = {a,b,c,d};
    

    arr[0][0]相当于a[0], sizeof( arr )是数组全部元素大小,sizeof( arr[0][0] )就是单个元素的大小了,一相除就得到了总元素的个数。

    指针数组

    指针数组、数组指针,傻傻分不清,一般我这样子区分:星号*和数组名arr没有被括号()包裹起来就是指针数组,反之这样的(*arr)[ ]那就是数组指针。其实主要是看结合优先级,*arr[ ]中arr[ ]结合的优先级最高,然后才是和星号*,那么它就相当于一个数组带了一个星号了,指针数组就是存放指针的数组,本质上是数组,只不过存放的不是普通元素,而是指针罢了。

    /*test_three.c*/
    #include <stdio.h>
    
    int main(void)
    {
    	char *arr[] = {"1","2","3","4","5","6","7","8","9","10"};
    	unsigned long int arr_len = sizeof(arr)/sizeof(arr[0]);
    	printf("%ld\n",arr_len);
    	
    	return 0;
    }
    
    /*测试输出*/
    10
    

    结构体数组

    /*test_four.c*/
    #include <stdio.h>
    
    typedef struct test
    {
    	int value;
    	unsigned char buf[5];
    }TEST;
    
    int main(void)
    {
    	TEST arr[10];
    	unsigned long int arr_len1 = sizeof(arr)/sizeof(arr[0]);
    	unsigned long int arr_len2 = sizeof(arr)/sizeof(TEST);
    	unsigned long int arr_len3 = sizeof(arr)/sizeof(struct test);
    	
    	printf("%ld\n",arr_len1);
    	printf("%ld\n",arr_len2);
    	printf("%ld\n",arr_len3);
    	
    	return 0;
    }
    
    /*测试输出*/
    10
    10
    10
    
    展开全文
  • 今天小编就为大家分享一篇解决C语言数组元素循环右移的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
  • 今天小编就为大家分享一篇C语言数组元素的循环移位方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
  • C语言 数组中重复的数字解决方法: 题目:在一长度为n的数组里的所有数字都在0-n-1的 范围内。数组中某些数字是重复的,但是不知道有几数字重复了,也不知道每数字重复了几次。请找出数组中任意一重复的数字...
  • C语言如何求数组元素个数

    千次阅读 2019-11-30 14:06:05
    整个数组所占字节 除以 数组单个元素所占字节 # include <stdio.h> # include <stdlib.h> # include <string.h> int main(void) { int a[] = {1, 5, 7, 0, 10, 7, 3};//int类型在32位操作...

    整个数组所占字节数 除以 数组单个元素所占字节数

    # include <stdio.h>
    # include <stdlib.h>
    # include <string.h>
    
    int main(void)
    {
    	int a[] = {1, 5, 7, 0, 10, 7, 3};//int类型在32位操作平台占4个字节
    
    	int b = (sizeof a) / (sizeof a[0]);//总数组元素所占字节数除以单个数组元素所占字节数
    
    	printf("b = %d", b);
    
    	printf("\n");
    	system("pause");
    	return 0;
    }

     

    展开全文
  • C语言数组元素交换

    千次阅读 2020-09-06 12:02:02
    } 注意,不要尝试换两值的地址。像这样 void swap_element2(int *a, int *b) { int *tmp = a; a = NULL; a = b; b = NULL; b = tmp; } int main(){ int a[2] = { 1,2 }; swap_element2(a+0, a+1); printf("a...

    代码 

    void swap_element(int *a, int *b) {
    	int tmp = *a;
    	*a = *b;
    	*b = tmp;
    }
    
    int main(){
        int a[2] = { 1,2 };
        swap_element(a+0, a+1);
        printf("a[0]=%d,a[1]=%d\n", a[0], a[1]);
        return 0;
    }

    误区

    注意,不要尝试换两个指针的地址。像这样

    void swap_element2(int *a, int *b) {
    	int *tmp = a;
    	a = b;
    	b = tmp;
    }
    int main(){
        int a[2] = { 1,2 };
        swap_element2(a+0, a+1);
        printf("a[0]=%d,a[1]=%d\n", a[0], a[1]);
    	return 0;
    }

    结果没有改变 

    但是调试的过程是有改变的

    我这样做,就相当于把a[0]和a[1]的地址调换,但是数组的地址一开始已分配好,所以不能再改变。具体请看这个提问

     

    展开全文
  • c语言 数组元素之和

    2020-10-17 16:53:39
    数组元素之和 #include<stdio.h> #define SIZE 10 int sum(int ar[], int n); int main() { int marbles[SIZE] = { 20, 10, 5, 39, 4, 16, 19, 26, 31, 20 }; long answer; answer = sum(marbles, SIZE);...

    数组元素之和

    #include<stdio.h>
    #define SIZE 10
    int sum(int ar[], int n);
    
    int main()
    {
    	int marbles[SIZE] = { 20, 10, 5, 39, 4, 16, 19, 26, 31, 20 };
    	long answer;
    
    	answer = sum(marbles, SIZE);
    	printf("The total number of marbles is %ld.\n", answer);
    	printf("The size of marbles is %zd bytes.\n", sizeof marbles);
    
    	return 0;
    }
    
    int sum(int ar[], int n)
    {
    	int i;
    	int total = 0;
    	for ( i = 0; i < n; i++)
    	{
    		total += ar[i];
    	}
    	printf("The size of ar is %zd bytes.\n", sizeof ar);
    
    	return total;
    }
    

    在这里插入图片描述

    展开全文
  • 主要介绍了C语言查找数组里数字重复次数的方法,涉及C语言针对数组的遍历与判断技巧,具有一定参考借鉴价值,需要的朋友可以参考下
  • 利用C语言可以实现对数组的各种操作,如输入数组元素,输出数组元素、求数组元素平均值、输出数组元素最大值、输出数组元素最小值、查找某数值元素是否存在、给数组元素排序等功能。本压缩文件中是上述功能对应的...
  • C语言数组元素的左移、右移

    万次阅读 2018-08-26 15:17:40
    想到数组元素的移动,我最初的想法是这样的。 贴代码: for(i = 0; i &lt; it_Length - it_Steps; i++) { if(it_Direction == -1) { Array[i] = pt_Array[i + it_Steps]; } else { Array[i...
  • 主要介绍了C语言数组元素循环右移问题,本文通过多种方法给大家分享解决方案,通过实例代码讲解,对大家的工作或学习具有一定的参考借鉴价值,需要的朋友可以参考下
  • C语言数组元素的查找

    千次阅读 2019-04-14 17:41:57
    顺序查找 顺序査找也叫线性查找,是一种简单的査找算法,其实现方法是从序列的起始元素开始,逐个将序列中的元素与所要查找的元素进行比较,如果序列中有元素与所要查找的元素相等,...* @param int n 数组元素的...
  • C语言数组插入元素

    千次阅读 2019-11-18 22:39:54
    一、运行结果 二、源代码 #include <stdio.h>... //长度11,最后3个元素初始化为0 int a[11]={0,1,2,3,4,11,12,13 }; int b,insertpos; int i; for(i=0; i<11; i++) { printf(...
  • C语言数组--数组元素判断查询

    千次阅读 2020-08-05 22:42:52
    C语言数组数组元素判断查询 1.问题描述 今天在复习C语言的数组部分的内容,然后复习过程有一题目要去做 在做第三题目的时候,整个人的思路卡住了,因为if()函数里面不能嵌套for()循环,然后如果在for()函数...
  • C语言 数组倒序输出数字

    千次阅读 2020-07-23 09:01:12
    引用一维数组元素 对 10 个数组元素依次赋值为 1,2,3,4,5,6,7,8,9 ,10要求按逆序输出 #include<stdio.h> int main() { int i,a[10]; for(i=0; i<10; i++) a[i]=i; for(i=10; i>0; i--) printf("%...
  • C语言 获取数组元素个数

    千次阅读 2020-06-13 18:12:26
    数组元素个数的表达式为: sizeof(num) / sizeof( num[0] ) #include <stdio.h> #define INT_NUM 10 #define DOUBLE_NUM 20 int main(void){ int int_num[INT_NUM]; double double_num[DOUBLE_NUM]; ...
  • C语言 数组元素的遍历

    万次阅读 2019-04-14 09:21:31
    //依次输出数组元素 for ( i = 0 ; i < 10 ; i ++ ) { printf ( "%d " , nums [ i ] ) ; } return 0 ; } # include int main ( ) { int nums [ 10 ] = { 1 , 10 , 6 , ...
  • C语言数组——字符数组

    万次阅读 多人点赞 2020-02-17 20:59:51
    C语言目录 C/C++学习资源(百度云盘链接) 计算机二级资料(过级专用) C语言学习路线(从入门到实战) 编写C语言程序的7步骤和编程机制 C语言基础-第一C程序 C语言基础-简单程序分析 ...C语言数组——二维...
  • 数组练习解答 1 定义一名为 a 的单精度实型一维数组 长度为 4所有元素的初值均为 0 的定义语句 是_ 分析按照一般数据定义语句的格式可以直接写出方法一参看答案 考虑到所有元 素均赋初值时可以省略数组长度可以...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 180,598
精华内容 72,239
关键字:

c语言数组元素个数

c语言 订阅