C复习(二)

数组&字符串(2021.06.25)

  • 定义
	数据类型 数组名[元素个数]={1,值2,值3}
	数组下标 数组名[下标]
	数组下标是从0开始的到数组元素个数-1
	数组名是一个地址常量  指向数组首地址的常量
	数组必须预先知道大小 动态数组-》开辟堆空间

数组类型

  • 数值数组 int a[10];
  • 字符数组 char s[10];
  • 指针数组 char *p[10];
  • 结构数组 struct Stu boy[10];

二维数组

  • 定义
	类型说明符 数组名[常量表达式1][常量表达式2]
	// 其中常量表达式1表示第一维下标的长度,常量表达式2 表示第二维下标的长度。
	初始化 分段赋值 int a[3][4] = {{ 1, 2, 3, 4 },{ 5, 6, 7, 8, },{ 9, 10, 11, 12 }};
	数组名为数组首元素地址,二维数组的第0个元素为一维数组
	//求二维数组行数
	printf("i = %d\n", sizeof(a) / sizeof(a[0]));
	// 求二维数组列数
	printf("j = %d\n", sizeof(a[0]) / sizeof(a[0][0]));
	//求二维数组行*列总数
	printf("n = %d\n", sizeof(a) / sizeof(a[0][0]));

多维数组

  • 定义
	数组类型修饰符 数组名 [n1][n2][nn];

字符数组与字符串区别

  • C语言中没有字符串这种数据类型,可以通过char的数组来替代;
  • 字符串一定是一个char的数组,但char的数组未必是字符串;
  • 数字0(和字符‘\0’等价)结尾的char数组就是一个字符串,但如果char数组没有以数字0结尾,那么就不是一个字符串,只是普通字符数组,所以字符串是一种特殊的char的数组。
	char c1[] = { 'c', ' ', 'p', 'r', 'o', 'g' }; //普通字符数组
	printf("c1 = %s\n", c1); //乱码,因为没有’\0’结束符
	//c1 = c prog烫烫烫??旞
	//以‘\0’(‘\0’就是数字0)结尾的字符数组是字符串
	char c2[] = { 'c', ' ', 'p', 'r', 'o', 'g', '\0'}; 
	printf("c2 = %s\n", c2);
	//c2 = c prog
	//字符串处理以‘\0’(数字0)作为结束符,后面的'h', 'l', 'l', 'e', 'o'不会输出
	char c3[] = { 'c', ' ', 'p', 'r', 'o', 'g', '\0', 'h', 'l', 'l', 'e', 'o', '\0'};
	printf("c3 = %s\n", c3);
	//c3 = c prog
  • 一个汉字占两个字节
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值