c语言之数组

C语言数组

数组基本在所有语言中都是存在的。用处也是非常广泛的。像PHP简直无处不在用数组。C嘛,感觉指针比数组更叼一些 。今天写这篇博文记录一下C中的一维数组。

一、数组定义
说数组,有整型数组,字符数组,指针数组。都是数组元素中存放的数据类型不同而已。所以数组的定义要
1、指明数组的类型,
2、显示指出数组的长度,不能够越界使用。如:

int a[10]; char str[50];

当数组定义,数组名是个地址常量,不允许改变。所以,可以直接把数组赋给一个指针
int *p;
p = a;

二、数组赋值
1、直接定义时赋值
2、动态输入赋值
通过代码演示如下:

int a[10] = {1,2,3,4,5};//定义了五个元素的值,其他的值不确定
//ps:但是如果是静态数组(static int a[10]),其他的值会被默认为0
int b[10],i;
for(i=0;i<10;i++){
	scanf("%d",&b[i]);
}
for(i=0;i<10;i++){
	printf("a[%d]=%d,b[%d]=%d\n",i,a[i],i,b[i]);
}

三、字符数组
定义和赋值和上面是一样的。
在C语言中并没有特别为字符串当成另一种数据类型来处理。那么,实际上,字符串就可以当成特殊的一维字符数组来处理了。
如:
char s[6] = {‘h’,‘a’,‘p’,‘p’,‘y’,’\0’}; 等价于 char s[6] = “happy”;
可以看出数组长度至少比有效字符多一。
通常字符串的操作,都是要和’\0’相挂钩的。

//输入字符串的方法
1、静态赋值
char a[5] = “happy”;
char *sp = “happy”;//指针方式
2、循环逐个输入每个字符,并以’/0’结束

char a[20];
int i;
i = 0;
while((a[i] == getchar()) != '\n'){
	i++;
}
a[i] = '\0';
printf("%s",a);

3、利用scanf()函数
char a[20];
scanf("%s",a);//不用&,因为数组名本身就是一个地址
scanf如果输入了空格会认为字符串结束,空格后的字符将作为下一个输入项处理
gets(a); //gets()函数将接收输入的整个字符串直到遇到换行为止

4、利用指针和动态分配内存实现

#include <stdio.h>
#include<stdlib.h> //该头文件别忘加,否则使用malloc会报错
int main(){
char *sp;
sp=(char *)malloc(sizeof(char));
scanf("%s\n",sp);
printf("%s,%c\n",sp,*sp);//如我输入hello; 打印的结果是 hello(sp),h(*sp)
return 0;
}

2019/3/9 天气阴 一直下雨。。。
在linux搭建php环境:https://study.163.com/course/introduction/1209187856.htm

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值