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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • phpstrom2021激活码_在线激活

    (phpstrom2021激活码)2021最新分享一个能用的的激活码出来,希望能帮到需要激活的朋友。目前这个是能用的,但是用的人多了之后也会失效,会不定时更新的,大家持续关注此网站~IntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,下面是详细链接哦~https://javaforall.net/100143.html…

    2022年3月21日
  • ArrayList中的toArray()[通俗易懂]

    ArrayList中的toArray()[通俗易懂]ArrayList的toArrayArrayList提供了一个将List转为数组的一个非常方便的方法toArray。toArray有两个重载的方法:1.list.toArray();2.list.toArray(T[] a);对于第一个重载方法,是将list直接转为Object[]数组;第二种方法是将list转化为你所需要类型的数组,当然我们用的时候会转化为

    2022年5月14日
  • java.lang.assertionerror_java parseint

    java.lang.assertionerror_java parseintMicrosoftVisualStudioSolutionFile,FormatVersion12.00#VisualStudio15VisualStudioVersion=15.0.26730.16MinimumVisualStudioVersion=10.0.40219.1Project(“{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC…

    2022年9月8日
  • 程序流程图,n-s图和pad图是_计算机判断中Y和N

    程序流程图,n-s图和pad图是_计算机判断中Y和N1.DFD图2.N-S图3.PAD图4.程序流程图

    2022年8月13日
  • php解析xml,并将xml转换为层级数组

    php解析xml,并将xml转换为层级数组

    2021年9月12日
  • 为什么会有内存屏障呢_内存出问题有什么现象

    为什么会有内存屏障呢_内存出问题有什么现象复习一下内存屏障主要解决指令重排和可见性,需要了解JMM架构原文链接为什么会有内存屏障每个CPU都会有自己的缓存(有的甚至L1,L2,L3),缓存的目的就是为了提高性能,避免每次都要向内存取。但是这样的弊端也很明显:不能实时的和内存发生信息交换,分在不同CPU执行的不同线程对同一个变量的缓存值不同。用volatile关键字修饰变量可以解决上述问题,那么volatile是如何做到这一点的呢?那就是内存屏障,内存屏障是硬件层的概念,不同的硬件平台实现内存屏障的手段并不是一样,java通过屏蔽这些差异,统

    2022年8月8日

发表回复

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

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