精华内容
下载资源
问答
  • 其次,分析两种输出,对于3*2的二维数组来说,按行输出即正常的数组元素输出形式,而后按列输出的话举个例子来说,比如输出一第一个即a[0],而第二个元素就要是a[2],依次类推,用指针数组p可以直接按地址的移动来进行输出...

    首先我门要区分两个概念,指针数组和数组指针.
    指针数组:存储指针的数组,即该数组内的元素都是指针.
    数组指针:指向数组的指针.准确来说应该是指向数组首元素地址的指针。
    而题目中设置的为指针数组p,说明是想用这个指针数组p存储一维数组内元素的地址.
    其次,分析两种输出,对于3*2的二维数组来说,按行输出即为正常的数组元素输出形式,而后按列输出的话举个例子来说,比如输出一第一个即a[0],而第二个元素就要是a[2],依次类推,用指针数组p可以直接按地址的移动来进行输出。
    但要注意的是,第二列的输出开始之后要将p的指向改为数组第二个元素a[1].
    完整代码如下:

    #include<stdio.h>
    int main()
    {
    	int a[6]={2,4,6,8,10,12};       //定义一维数组a
    	int *p;                         //定义指针数组p 
    	int i,j;
    	p=a;
    	printf("按行顺序输出:");
    	for(i=0;i<6;i++,p++)
    	{
    		printf("\n");
    		printf("%d",*p);
    	}
    	printf("\n按列顺序输出:\n");
    	p=a;
    	for(i=0;i<2;i++)
    	{
    		for(j=0;j<3;j++)
    		{
    			printf("%d\t",*p);
    			p=p+2;
    		}
    		printf("\n");
    		p=p-5;
    	}
    	return 0;
     }
    

    对我的博客或其他方面有任何见解或问题的话都可以私信我
    或者联系本人QQ:3128909688
    微信:DreamHerome
    欢迎致电

    展开全文
  • 数组练习解答 1 定义一个名为 a 的单精度实型一...考虑到不省略数组长度 给部分元素赋初值时所有未赋初值的元素均有空值对数值型数组来说初值为 0 可 以写出方法三参看答案 考虑到选用静态型不赋初值所有元素也自动赋予
  • C语言 数组和函数

    2018-07-23 20:59:15
    一、一维数组 1.定义格式: 类型说明符 数组名[常量表达式]; 例如: int a[10] ... 定义a数组有10个元素,但花括弧内只提供5个初值,这表示只给前面5个元素赋初值,后5个元素值为0。 int a[10]...

    一、一维数组

    1.定义格式:

    类型说明符  数组名[常量表达式];  例如  int a10 

    2.一维数组初始化

     

    • int a10={0,1,2,3,4,5,6,7,8,9};
    •  int a10={01234};       

           定义a数组有10个元素,但花括弧内只提供5个初值,这表示只给前面5个元素赋初值,后5个元素值为0

    • int a10={0};
    • 对全部数组元素赋初值时,由于数据的个数已经确定,因此可以不指定数组长度。

       例如:int a5={12345};

       也可以写成  int a[]={12345};  

       int a10={12345};  只初始化前5个元素,后5个元素为0

     

    二、二维数组

    1.定义格式:

    类型说明符  数组名[常量表达式][常量表达式]

    例如:float  a[3][4];定义a3×4(34)的数组

    2.二维数组初始化

    • 分行给二维数组赋初值。

    例如: int a[3][4]={{1234}{5678}, {9101112}}; 

    • 将所有数据写在一个花括号内,按数组排列的顺序对各元素赋初值。

    例如:int a[3][4]={123456789101112};

    • 可以对部分元素赋初值。

    例如: int a[3][4]={{1}, {5}, {9}};也可以对各行中的某一元素赋初值,如int a[3][4]={{1}, {0,6}, {0, 0, 0, 11}}; 

    • 如果对全部元素都赋初值,则定义数组时对第一维的长度可以不指定,但第二维的长度不能省。

    例如:int a[3][4]={1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12};等价int a[ ][4]={1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12};

            3.地址

    int a[4][3] ;

    printf( " %p\n", &a[0][0]) ; //首元素的地址,单位4字节

    printf( " %p\n", a[0]) ; //首行首元素的地址,单位4字节

    printf( " %p\n", &a[0]) ; //首行的地址,单位12字节

    printf( " %p\n", a) ; //首行的地址,单位12字节

    printf( " %p\n", &a) ; //数组的地址,单位48字节

     

           三、字符数组

            1.字符数组初始化

    • char c[10] = {I’,‘ ’,a,m,‘ ’,h,a,p, ‘p’,y} ;

           char c[11] = "HelloWorld";

            2.输入输出方法

    • 逐个字符输入输出。用格式符“%c”
    • 将整个字符串一次输入或输出。用“%s”格式符。

            四、函数

            1.strcat函数-----------连接

    其一般形式为:strcat(字符数组1,字符数组2)

    strcat的作用是字符串2接到字符串1的后面,结果放在字符数组1,函数调用后得到一个函数值——字符数组1的地址。

            2.strcpy函数-----------复制 

    其一般形式为:strcpy(字符数组1,字符串2)

    strcpy的作用是将字符串2复制到字符数组1中去。

    (注:

             “字符数组1”必须写成数组名形式(str1)

             “字符串2”可以是字符数组名,也可以是一个字符串常量。如:strcpy(str1″China″)

              复制时连同字符串后面的0′一起复制到字符数组1中。

       )

            3.strcmp函数----------比较

    其一般形式为:strcmp(字符串1,字符串2)

    strcmp的作用是比较字符串1和字符串2

              比较的结果由函数值带回

    (1) 如果字符串1=字符串2,函数值为0

    (2) 如果字符串1>字符串2,函数值为一正整数。

    (3) 如果字符串1<字符串2,函数值为一负整数。

            4.strlen函数----------长度

    其一般形式为: strlen (字符数组)

    strlen是测试字符串长度的函数。函数的值为字符串中的实际长度(不包括0′在内)

          

            四、用数组编写的冒泡排序

    #include<stdio.h>
    
    void in(int a[], int length)
    {
        int i=0;
        printf("Please input:");
        for(i=0; i<length; i++)
        {
            scanf("%d",&a[i]);
        }
    }
    
    void mao(int a[], int length)
    {
        int i,j,temp;
        for(j=0; j<length-1; j++)
            for(i=0; i<length-j-1; i++)
            {
                if(a[i+1] < a[i])
                {
                    temp = a[i+1];
                    a[i+1] = a[i];
                    a[i] = temp;
                }
            }
    }
    
    void out(int a[], int length)
    {
        int i=0;
        for(i=0; i<length; i++)
        {
            printf("%d ", a[i]);
        }
    }
    
    int main()
    {
        int i, j, temp;
        int a[5] = {0};
        int length = sizeof(a)/sizeof(a[0]);
    
        in(a, length);
        mao(a, length);
        out(a, length);
    
        return 0;
    }

     

     

     

    展开全文
  • 两段程序计算得出的异或校验值不一致,用在线的校验工具看了一下C#的计算值正确,分析C代码发现校验值变量没有赋初值,以为初值会是0,实际不是,这样和C#算出来的结果不一致,初值赋值为0就好了。 ...

    C#的异或代码

     

    C的异或代码

    两段程序计算得出的异或校验值不一致,用在线的校验工具看了一下C#的计算值正确,分析C代码发现校验值变量没有赋初值,以为初值会是0,实际不是,这样和C#算出来的结果不一致,初值赋值为0就好了。

     

     

    展开全文
  • 一、C语言数组的定义 1.一维数组的定义: 类型说明符 数组名[常量表达式]; 注意:常量表达式包括常量与符号常量,不能包含变量。 2.二维数组的定义: 类型说明符 数组名[常量表达式...想使一个数组中全部元素值为0...

    一、C语言中数组的定义
    1.一维数组的定义:
    类型说明符 数组名[常量表达式];    注意:常量表达式包括常量与符号常量,不能包含变量。
    2.二维数组的定义:
    类型说明符 数组名[常量表达式][常量表达式];
    二、C语言中数组的引用
    1.一维数组的引用:
    数组名[下标];
    2.一维数组的初始化:
    a.在定义数组时对数组元素赋以初值;
    b.可以只给一部分元素赋值;
    c.想使一个数组中全部元素值为0,可以写成:a[10]={0};
    需要注意 int a[10] = {1}; 并不能把数组初始化为全1,只是将第一位初始化为1,后面全部都是0滴.
    d.在对全部数组元素赋初值时,可以不指定数组长度。
    1.二维数组的引用:
    数组名[下标][下标];
    2.二维数组的初始化:
    a.分行给二维数组赋值。int a[3][4]={{1,2,3,4},{5,6,7,8},{,9,10,11,12}};
    b.可以将所有数据写在一个花括弧内,按数组排列的顺序对各元素赋初值。
    c.可以对部分元素赋初值:
    d.如果对全部元素都赋初值(即提供全部初始数据),则定义数组时对第一维的长度可以不指定,但第二维的长度不能省。
    注意其中:对于数组类型说明应注意以下几点:
    1-数组的类型实际上是指数组元素的取值类型。对于同一个数组,其所有元素的数据类型都是相同的。
    2-数组名的书写规则应符合标识符的书写规定。
    3-数组名不能与其它变量名相同。例如:
    int a;
    float a[10];
    是错误的。
    4-方括号中常量表达式表示数组元素的个数,如a[5]表示数组a有5个元素。但是其下标从0开始计算。因此5个元素分别为a[0], a[1], a[2], a[3], a[4]。
    5-不能在方括号中用变量来表示元素的个数,但是可以是符号常数或常量表达式。例如:
    #define FD 5
    int a[3+2],b[7+FD];
    是合法的。但是下述说明方式是错误的。
    int n=5;
    int a[n];
    6、允许在同一个类型说明中,说明多个数组和多个变量。例如:
    int a,b,c,d,k1[10],k2[20];
    三、字符数组
    1.字符数组的定义:参考一维数组定义,类型的改变。
    2.字符数组的初始化:参考一维数组初始化。
    3.字符数组的引用:参考一维数组的引用。
    4.字符串和字符串结束标志:字符串在遇到‘\0’,表示字符串结束。
    5.字符数组的输入输出:
    a.逐个字符输入输出,使用“%c”;
    b.将整个字符串一次输入输出,用“%s”。
    注意:A.输出字符不包括结束符‘\0’;B.用“%s”输出字符串时,printf函数中的输入项是字符数组名,而不是数组元素名。C.如果数组长度大于字符串实际长度,也只输出到‘\0’结束。D.如果一个字符数组中包含一个以上‘\0’,则遇第一个‘\0’时输出就结束。
    6.字符串处理函数:
    a.puts(字符数组)     作用:将一个字符串(以‘\0’结束的字符序列)输出到终端。
    b.gets(字符数组)     作用:以终端输入一个字符串到字符数组,并且得到一个函数值。该函数值是字符数组的起始地址。
    注意:用putshe  gets函数只能输入或输出一个字符串,不能写成puts(str1,str2)或gets(str1,str2).
    c.strcat(字符数组1,字符数组2)    作用:连接两个字符数组中的字符串,把字符串2接到字符串1的后面,结果放在字符数组1中,函数调用后得到一个函数值——字符数组1的地址。
    说明:A.字符数组1必须足够大,以便容纳连接后的新字符串。B.连接钱粮个字符串的后面都有一个‘\0’,连接时将字符串1后面的‘\0’取消,只在新串最后保留一个‘\0’。
    d.strcpy(字符数组1,字符串2)     作用:是将字符串2复制到字符数组1中去。
    说明:A.字符数组1必须定义得足够大,以便容纳被复制的字符串,字符数组1的长度不应小于字符串2的长度。B.“字符数组1”必须写成数组名形式,“字符串2”可以是字符数组名,也可以是字符串常量。C.复制时连同字符串后面的‘\0’一起复制到字符数组1中。D.不能用赋值语句将一个字符串常量或字符数组直接给一个字符数组。E.可以用strcpy函数将字符串2中前面若干个字符复制到字符数组1中去。如:strcpy(str1,str2,2);
    e.strcmp(字符串1,字符串2)        作用:是比较字符串1和字符串2。
    说明:A.如果字符串1=字符串2,函数值为0。B.如果字符串1>字符串2,函数值为一正整数。C.如果字符串1<字符串2,函数值一定为负数。注意:对两个字符串进行比较只能采用strcmp(字符串1,字符串2)的形式,不他形式。

    学习感悟:学习完数组这节,可以通过比前几章更简单的程序来解决较为复杂的问题,并且比较简洁。

     

     

    展开全文
  • C语言指针数组介绍,定义指针数组,输入输出指针数组 1、什么是指针数组; (1)数组里面的每一个元素不是值而是值,而是指针。 (2)把很多的指针集合在一起,就是一个指针数组 ...3、如何给指针数组赋初值
  • C语言数组

    2021-01-09 17:03:58
    当没有赋初值时,数组内数据都时随机数 当赋了部分值时,其他值默认为0 当通过下标取值超界时,获取的是随机数 声明基本格式: 数据类型 变量名[长度表达式] 例如:int m[5] 数组初始化 a[5] = {1,2,3,4,5...
  • 一维数组: 一、一维数组的定义格式为: 类型说明符 数组名[常量表达式]; 注解:定义数组时需要注明数组元素的个数,即数组...2、也可以只给一部分元素赋值,未赋值的为0; 3、 如果想使一个数组中全部元素值
  • C语言中不对数组赋初值

    千次阅读 2013-05-26 11:01:39
    如果不对数组赋初值: int a[10] for(i=0; i { printf("%d\t", a[i]); } 将得到到什么结果呢?...(1)如果数组a是全局变量,则默认初始值为0; (2)如果数组a的声明是在函数体内,则a的值为随机;
  • C语言基础之数组

    2017-06-05 13:56:54
    C语言中,数组属于构造数据类。数组元素可以是基本数据类型也可以是构造类型。 一维数组定义:  类型标识符 数组名[常量表达式]  例: int a[10] /*下标从0开始 ...在定义数组赋初值 例:int a[10]={
  • C语言数组的定义和使用

    万次阅读 多人点赞 2014-12-09 08:35:30
    数组的定义与使用 ...一、1.一维数组的定义: ...类型说明符 数组名[常量表达式]; 注意:常量表达式包括常量与符号常量,不能包含变量。...想使一个数组中全部元素值为0,可以写成:a[10]={0};
  • c语言第七章 数组

    2019-08-28 15:59:03
    第七章数组 1.类型说明符:数组中每个元素的所属类型除void 都可以 2.数组名:遵循标识符命名规范 ...(4)在对全部数组元素赋初值时,由于数据个数已确定,因此可以不指定数组长度 冒泡排序 二,二维数组...
  • C语言中,给字符数组赋初值时有如下区别 char str1[] = {'h','e','l','l','o'};//数组长度5 char str2[10] = {'h','e','l','l','o'};//字符串长度5 str1不是一个字符串,只是一个字符数组,这个数组的长度是5...
  • 输入n和x,n和x分别表示对数组前n个元素赋初值为x。要求定义一个函数value,完成对一维整型数组的n个元素进行赋值,具体赋值x。(题目来源:C语言程序设计第三版) #include<stdio.h> double value(double *a,...
  • c语言:字符数组相关

    2020-10-20 12:13:30
    一.字符数组如何输入、输出字符串; 1.`char zifu[]=“wasd”;...(此时“sda”字符串常量,相当于给zifu字符串常量初值) 4.使用gets,puts函数; gets(字符数组):从键盘输入字符串,直到遇到
  • C语言基础--数组

    2018-12-16 16:05:31
    数组 一块 连续 且 同类型 的存储空间... 分配空间时,赋予初值以外的空值均为0 sizeof(buf)/sizeof(int)==10 是不确定元素的个数的 字符数组 定义:char buf[长度] 初始化:在定义的同时赋初值 char buf[10]={...
  • C语言学习------2.1数组

    2017-02-24 17:53:16
    2.在定义数组是对部分数组元素赋初值,未赋值的部分元素值为0 3.在对全部数组元素赋初值时可以不指定数组长度 二维数组 一般形式:数组类型 数组名[常量表达式1][常量表达式2]; 二维数组的初始化 1.将所有...
  • C语言---字符数组

    2017-12-10 18:20:00
    定义循环变量i,j定义不空格的字符数count,定义单词数number,i,j,count,number赋初值0; 定义字符数组a 输入字符数组a 遍历数组 每次进入循环,对count赋初值0 fori=jtoa[i]=='\0' ...
  • C语言学习(三)数组

    2019-10-08 04:11:29
    1.1 在定义数组时对数组元素初值。 例如: int a[10]={0,1,2,3,4,5,6,7,8,9}; 1.2 可以只给一部分元素赋值 例如: int a[10]={0,1,2,3,4};其余数据为0 1.3 使一个数组中全部元素值...
  • 3、编译器使用的值是内存相应位置上的现在有值,使用数组前必须先赋初值。 4、如果不初始化数组数组元素和未初始化的普通变量一样,其储存的都是垃圾值。部分初始化,剩余元素就会被初始化为0。可以省略方括号中的...
  • C语言:一维数组程序

    2021-01-14 19:56:13
    题目概述:(斐波那契)数列的前40个数。这个数列有如下特点:第1,...//对最前面两个元素f[0]f[1]赋初值1 for(i=2;i<20;i++) f[i]=f[i-2]+f[i-1];//先后求出f[2]~f[19]的值 for(i=0;i<20;i++) { if(i%5==0)printf("\
  • 一、1.一维数组的定义:类型说明符 数组名[常量表达式];...想使一个数组中全部元素值为0,可以写成:a[10]={0};需要注意 int a[10] = {1}; 并不能把数组初始化为全1,只是将第一位初始化为1,后面...
  • 第9讲 字符数组;一字符数组的定义;在字符数组中每一个元素只能存放一个字符 ;二字符数组的初始化;例 char s3[8]={s,t,r,i,n,g,\0};...2给部分元素赋初值 例char s1[9]={C,h,i,n,a!}; char s2[9]={C,
  • 一、PTA实验作业 题目一.找最长的字符串 ...定义最大字符串的字符个数max并且赋初值0,定义变量s来遍历op将op赋给most,定义变量j用来每一个字符串的输入。 (2)输入N (3)for(i=0;i<N;i++...
  • (赋初值) 注意: 1))[ ] :数组运算符单目运算符优先级(1)左结合不能用( ); 2)表达式:数组个数,不能变量。从0开始; 3)标识符即数组名。 1>代表整个数组数组名表示内存首地址
  • 数组定义时,不能将元素数定义为0或是实型,也不能含有变量。 C语言只能逐个的使用下标变量,不能一次引用整个数组。(即数组的输入存储和输出时都是使用循环语句逐个输出各下标变量) 一维数组元素初始化 (1)数组...
  • C语言数组名就是第一个元素的地址,所以可以直接把它给一个指针,不需要取地址。 1 void InitBiTree(SqBiTree T) 2 { // 构造空二叉树T。因为T是数组名,故不需要& 3 int i; 4 for(i=0;i<MAX_TREE_...

空空如也

空空如也

1 2 3 4 5
收藏数 98
精华内容 39
关键字:

c语言数组赋初值为0

c语言 订阅