C语言程序设计7--8章

第七章  数组和字符串

(1)一维数组:数据类型 数组名{整型常量表达式}

               定义:数据类型是数组中全体数组元素的数据类型;

                         数组名用标识符表示,整型常量表达式代表数组具有的数组元素个数;

                         数组元素的下标一律从0开始;

                         编译程序为数组开辟连续的存储单元,用来顺序存放数组的个数组元素,用数组名表示该数组存储区的首地址。

             初始化:int a[5]={1,2,3,4,5}

                          a[0]=1, a[1]=2, a[2]=3,a[3]=4,a[4]=5

(2)二维数组:数据类型 数组名{整型常量表达式}{整型常量表达式}

               定义:整型类型是数组全体数组元素的数据类型;

                         数组名用标识符表示,两个整型常量表达式代表数组具有的数组具有的行数和列数;

                         数组元素的下标一律从0开始;

            初始化:int a[2][3]={1,2,3}{4,5,6}

                         a[0][0]=1, a[0][1]=2, a[0][2]=3,a[1][0]=4,a[1][1]=5,a[1][2]=6

(3)字符串:C语言使用字符数组来存放字符串,该字符数组中包含一个'\0'字符,代表字符串的结尾。


例如:

1.遍历数组:

#include<stdio.h>
int main(void) {
int a[] = {1, 5, 6};
int i;
for (i = 0; i < 3; i++) {
printf("%d\n", a[i]);
}
}

2.遍历二维数组:

#include<stdio.h>
int main(void) {
int a[2][3] = {{100, 99, 60}, {99, 60, 99}};
int i, j;
for (i = 0; i < 2; i++) {
for (j = 0; j < 3; j++) {
if (i == 0) {
printf("????????%d\n", a[i][j]);
}
if (i == 1) {
printf("???????????%d\n", a[i][j]);
}
}
}

3.数组的理解:

#include<stdio.h>
int main(void) {
int a[2];//在a处开辟两个4个字节大小的内存空间 
a[0] = 1;//在a处偏移0个位置赋值为1 
a[1] = 2;//在a处偏移1个位置赋值为2 
printf("%d\n", a);//a处存的东西 
printf("%d\n", &a[0]);//【a存的地址】处【再偏移0】处的【地址】 
printf("%d\n", a[0]);//【a处的地址】处【再偏移0】处的【值】 
printf("%d\n", &a[1]);//【a存的地址】处【再偏移1】处的【地址】 
}

4.字符串数组:

#include<stdio.h>
#include<string.h>
int main(void) {
// int a[2][2][3] = {{{1, 2 ,3}, {1, 2, 3}}, {{1, 2, 3}, {1, 2, 3}}};
char b[] = "china";
int a[] = {1, 2, 3};
char c = 65;
//%d c可输出为数字 
//%c c也可输出为字符 
printf("%s\n", b);// 如果按%s字符串格式输出,则为字符串 
printf("%d\n", b);//如果首地址按%d整形输出,则为地址 
printf("%d\n", a);

char national[2][100] = {"China", "England"};

//数组再存数组,便是二位数组 
int grade[2][2] = {{99, 100}, {88, 66}};
//数组存数组再存一个数组,便是三维数组(字符串是数组) 
char users[2][2][8] = {{"xiaosan", "123"},{"xiaosi", "123"}};

char p[] = "123";
char pp[] = "123";
char ppp[] = "1234";
printf("%d\n", p == pp);//p和pp是首地址,两个数组的首地址不一样 
printf("%d\n", strcmp(p, pp) == 0);//strcmp是比较的两个字符串(经过处理的,不再是地址类似于%s) 
printf("%d\n", strcmp(p, ppp) == 0);
}

第八章  复杂数据类型

(1)结构类型:struct 结构名  {数据类型1  成员名1;};

(2)共用体:union 共用体名{数据类型 成员名;}共用体变量名;

(3)枚举型:enum 枚举名{标识符[=整型常数],};

(4)指针类型


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值