C语言--程序设计基础——7、8章

本文详细介绍了C语言中的一维数组、二维数组及三维数组的定义与使用方法,并进一步探讨了结构体、共用体及枚举类型等复杂数据类型的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

第七章 数组和字符串

数组,就是按一定顺序排列,具有某种相同性质的同类型变量的集合。

一维数组的定义:

  • 数据类型是数组中全体数组元素的数据类型
  • 数组名用标识符表示,整型常量的表达式代表该数组具有的数组元素个数
  • 数组元素的下标一律从0开始
  • 编译程序为数组开辟连续的存储单元,用来顺序存放数组的各数组元素。用数组名表示该数组存储区的首地址。

注意:

  1. 如 int a[5], b[12];中,数组名a代表a数组的首地址,即a[0]存储单元的地址。
  2. 初始化的数据个数不能超过数组元素的个数

二维数组;

如 int a[ ][3] = {1, 2, 3, 4, 5, 6};--------可以省略第一维的的定义,但不能省略第二维的定义;根据初始化的数据个数和第二维的长度可以确定第一维的长度。

三维数组;

如char user[2][2][8] = {{"abc", "123"}, {"dce", "456"}};

数组存数组,再存一个数组,便是三维数组(字符串是数组)。

实例(部分代码):

1)

#include<string.h>

char p[] = "123";

char pp[] = "123";

char ppp[] = "1234";

printf("%d", p == pp);-----------------输出为地址,0即不相等。-->p和pp是首地址,两个数组首地址不一样

printf("%d", stcomp(p, pp) == 0);输出为1,即相等。-->stcomp(p, pp)处理过后,不再是地址,类似为%s。


2)

int a[2];---------------------------------在a首地址处开辟两个空间

a[0] = 1;-------------------------------在a处偏移0 个位置赋值为1

a[1] = 2;--------------------------------在a处偏移一个位置赋值为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)处的地址


第八章 复杂数据类型

C语言数据类型:

  1. 基本类型:int,浮点型(float,double),char
  2. 指针类型
  3. 构造类型:数组,struct,union,enum
  4. void

声明结构体类型的变量

struct Employee personl = {"张三",1280,3500.5,“Beijing”,1000,“010-8888888”};

共用体:同一内存段可以用来存放几种不同类型的成员,但在某一瞬间只有一个成员起作用。

如:

a.i = 1;

a.c = 'a';

a.f = 1.5;

此时,只有a.f是有效的,而a.i和a.c已经失效。

枚举类型

C语言编译器把枚举元素当作是整型常量来处理,枚举中每个成员(标识符)结束符是“,”,不是“;”。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值