注册 登录  
 加关注
查看详情
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

始めの一歩

不是世界变得无聊了,而是你变成了无聊的人……

 
 
 

日志

 
 

【C】技巧 2 -- 关于「指针」与「数组」的各种使用方法  

2012-07-17 14:22:51|  分类: FateのC/C++の技 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

学了好几年的编程,结果还是没有掌握好“指针”与“数组”的各种使用方法,这次好好补一下……

 

一、静态数组:

#include <stdio.h>

void main (void)
{
    int array[5] = {1, 2, 3, 4, 5};

    int i;
    for (i = 0; i < 5; i++) printf("%d ", array[i]);

    printf("\n\n");
}

 

二、动态数组:

#include <stdio.h>
#include <stdlib.h>

void main (void)
{
    int i;

    int *array = NULL;
    array = (int *) malloc (5 * sizeof(int));
    if (array == NULL) printf("Fail to malloc array");

    for (i = 0; i < 5; i++) array[i] = i + 1;

    for (i = 0; i < 5; i++) printf("%d ", array[i]);

    printf("\n\n");

    free(array);
}

 

三、指针与数组:

1、指针与数组的“定义”:

int a[5];
int *p;

则下边的使用方法是等价的:

p = &a[0];
p = a;

注:如下使用是错误的:

(*p) = a[0];           // *p 指向某数值,不代表 p 是某数值的地址,所以后边不能用 *(p+1)
printf("%d ", *(p+1));

 

2、指针与数组的“使用”:

如下使用方法是等价的:(在 1 的定义前提下)

a[i]
*(a+i)
p[i]
*(p+i)

 

四、数组作函数参数:(高亮处为定义以及用法)

#include <stdio.h>

void Scanf_Array(int a[ ], int *length);

void main (void)
{
    int length = 5, i;
    int a[5];

    Scanf_Array(a, &length);

    for (i = 0; i < length; i++) printf("%d ", a[i]);
    printf("\n\n");
}

void Scanf_Array(int a[ ], int *length)
{
    int i = 0;
    while (i < *length && scanf("%d", &a[i]) == 1) {
        if (a[i] == 0) break;
        i++;
    }
}

 

五、

未完待补,持续更新中……

  评论这张
 
阅读(93)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018