C语言:数组与指针详解

文章概述

本文章讲述关于C语言的主要内容如下:
  1.字符数组、2.一维数组与指针、3.二维数组与指针、4.字符串与指针、5.字符串指针数组

一、字符数组

  定义一维数组时,系统会在内存中为其分配一段存储空间,数组名就是数组在内存中的首地址。数组中的元素类型为字符型时,称为字符数组。字符数组中的每个元素可以存放一个字符。
注意单引号‘’用来表示字符,双引号“”用来表示字符串

1、字符数组定义和引用

定义形式如下:
char 数组标识符[常量表达式]

示例:

char cArray[5];
// 字符数组的引用
cArray[0]='H',cArray[1]='e',cArray[2]='l',cArray[3]='l',cArray[4]='o';

对字符数组进行初始化操作时,有以下几种方法:
(1)逐个字符赋给数组中的元素,例如:

char cArray[5]={
   'H','e','l','l','o'};

定义字符数组的同时进行初始化,此时可以省略数组长度,系统会自动根据初值个数来确定数组长度:

char cArray[]={
   'H','e','l','l','o'};

(2)利用字符串给字符数组赋值,例如:

char cArray[]={
   "Hello"};

或者将“{}”去掉,写成:

char cArray[]="Hello";

2、字符数组的结束标志

在C语言中,使用字符数组保存字符串时,系统会自动为其添加“\0”作为结束符。即用字符串方式赋值比用字符逐个赋值要多占一个字节。
char cArray[]=“Hello”;
等价于:
char cArray[]={‘H’,‘e’,‘l’,‘l’,‘o’,‘\0’};  //此时,占用6个字节

3、字符数组的输入和输出

字符数组的输入和输出可以使用两种格式字符:“%c”和“%s”:
  1)%c可实现数组中字符的逐个输入与输出;
  2)%s可将整个字符串输入或输出;

使用格式字符“%s”输出字符串时,需要注意以下几种情况:

  1. 输出字符中不包括结束符“\0”;
  2. printf函数中的输出项是字符数组名cArray,而不是数组中的元素名cArray[0]等;
  3. 即使数组长度大于字符串实际长度,也只会输出到“\0”为止;

二、数组与指针

  使用数组是,系统需要提供一段连续的内存来存储数组中的各元素,如果把数组的地址赋给指针变量,就可以通过指针变量来引用数组。

1、一维数组与指针

将数组的首地址传给指针变量,则该指针就指向了这个一维数组。例如:

int *p,a[5];
p=a

这里a是数组名,即数组的首地址,将它赋给指针变量p,即将a的首地址赋给p,也可以写成如下形式:

int *p,a[5];
p=&a[0];
</
  • 16
    点赞
  • 43
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

逆鳞_Kevin

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值