C语言之数组(数组赋值的三种形式)

C语言之数组(数组赋值的三种形式)在C语言中,对数组进行赋值的三种形式1、通过循环的形式    即:数组名[下标]    对数组的元素进行依次赋值 #include<stdio.h>intmain(){inti;inta[10]={0};for(i=0;i<10;i++){scanf("%d",&a[…

大家好,又见面了,我是你们的朋友全栈君。

在C语言中,对数组进行赋值的三种形式

1、通过循环的形式     即:数组名[下标]      对数组的元素进行依次赋值

 

#include <stdio.h>
int main()
{
    int i;
    
    int a[10] = {0};
    for(i=0;i<10;i++)
    {
         scanf("%d",&a[i]);
    }
    for(i=0;i<10;i++)
    {
        printf("%d ",a[i]);
    }
    return 0;
}

2、通过循环的形式     数组名+下标       对数组的元素进行依次赋值

#include <stdio.h>
int main()
{
    int i;
    int a[5];   // 数组名:a 是数组首元素的地址 -----相当于一个指针  是一个常量  
                //指针+整型值,表示地址的前移,前移的字节由指针指向的对象的类型决定
                //b+1;  前移4个字节(int型)

    printf("%#p\n",a);        //打印输出数组a的地址 相当于a[0]的地址
    printf("%#p\n",&a[0]);
    printf("%#p\n",a+1);
    printf("%#p\n",&a[1]);
    printf("%#p\n",a+2);
    printf("%#p\n",&a[2]);

    printf("请输入数组a元素的值:");
    for(i=0;i<5;i++)
    {
        scanf("%d",a+i);     //赋值给数组a
    }
    printf("a数组元素的值为:");
    for(i=0;i<5;i++)
    {
         printf("%d ",*(a+i));
    }
    return 0;
}

打印出的结果:

C语言之数组(数组赋值的三种形式)

 

3、通过循环的形式  利用指针  对数组的元素进行依次赋值

 #include <stdio.h>
int main()
{
    int i;
    int d[5] = {10,20,34,89,90};
	//指针指向一维数组,指针指向数组首元素
       //数据类型 *指针名;
	int *p = d;
	//int *p = &d[0];

	//指针指向数组首元素。指针名可以当数组名使用


		printf("%#p\n",p);
		printf("%d\n",d[0]);
		printf("%d\n",*++p); //++p p的地址先偏移, *p
		printf("%d\n",d[1]);
		printf("%#p\n",p);
		printf("%#p\n",&d[1]);

	printf("请输入数组d元素的值:");

	p = d;
	for(i = 0; i < 5; i++)
	{
		//scanf("%d",p+i);  //p+0 p+1 p+2 p+3
	     scanf("%d",p++);  //p = p+1
	}
	//for循环结束,p偏移到元素d[4]的下一个元素
	p = &d[0];
	for(i = 0; i < 5; i++)
	{
		//printf("%d ",*(p+i));
		//printf("%d ",*p++);  //p++,后置  *p取p变化之前的内容
		printf("%d ",p[i]);  //指针指向数组首元素。指针名可以当数组名使用
	}
	printf("\n-----------------\n");


    return 0;
}

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/157676.html原文链接:https://javaforall.net

(1)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 【2022年更新】手把手教你去除 WinRAR 的弹窗广告

    【2022年更新】手把手教你去除 WinRAR 的弹窗广告WinRAR作为知名的老牌压缩软件,二十余年来始终风靡全球,经久不衰。但对于中国用户,其简体中文的个人免费版安装后会有“评估版本”的标记,而且每次启动时会有代理商的弹窗广告。本文教你如何去除标记和弹窗广告,让你的WinRAR恢复纯净体验。

    2022年6月5日
    36
  • 粘包问题怎么解决_包带粘手怎么处理

    粘包问题怎么解决_包带粘手怎么处理如何解决粘包问题粘包就是连续向对端发送两个或者两个以上的数据包,对端在一次收取中受到的数据包数量可能大于1个,当大于1个时,可能时几个包加上某个包的部分,这这干脆几个完整的包在一起。当然,也可能收到的数据只是一个包的部分,这种情况一般也叫做半包。无论是半包问题还是粘包问题,因为TCP是流式数据,所以其解决思路还是从收到的数据中把包与包的边界区分出来。如何区分,有以下三种办法。固定包长的数据包。固定包长,即每个协议包的长度都是固定的。假如我们规定每个协议包的大小都是64字节,每收满64字节,就取出来

    2022年8月11日
    5
  • 老生常谈–什么是装箱什么是拆箱「建议收藏」

    老生常谈–什么是装箱什么是拆箱「建议收藏」我们知道.NET具有两个数据类型:值类型和引用类型。因为值类型没有指针引用,不是分配在托管堆中,也不会被GC回收,因此它比引用类型更加高效。但有时我们需要将一种类型的变量转换为另一种类型,这时我们就可以使用装箱/拆箱。一、什么是装箱装箱就是将值类型的数据存储在引用类型的变量中。例如在方法中创建了int类型的变量,需要将这个值类型赋值给一个引用类型的变量,这就意味着对这个值进行了装箱操作,代码如下:voiddemo(){intnum=25;//这是装箱操作objectobjN

    2022年10月21日
    0
  • UPX 加壳工具:The Ultimate Packer for eXecutables

    UPX 加壳工具:The Ultimate Packer for eXecutables

    2022年1月22日
    43
  • Java学习之注解篇

    Java学习之注解篇0x00前言续上篇文章,这篇文章就来写一下注解的相关内容。0x01注解概述Java注解(Annotation)又称Java标注,是JDK5.0约会的一种注释机制。和J

    2021年12月12日
    37
  • 小白都可以操作2021版(Github的注册与使用,超详细)

    小白都可以操作2021版(Github的注册与使用,超详细)作为一个学习IT的人,学习一点开源的社区是必须的,下面我们就来说说,IT中最大的开源交友社区github。废话不多说来看看

    2022年7月16日
    23

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号