5.11
- 每一行的 * 都是五个
- 输出 * 之前的空格数量规律为 0,2,4,6,8 符合等差数列
- t 用来控制每一行在输出 * 之前的空格数量
#include <stdio.h>
int main()
{
int t = 0;
for (int i = 0; i < 5; ++i)
{
for (int j = 0; j < t; ++j)
{
printf(" ");
}
printf("*****\n");
t += 2;
}
return 0;
}
5.13
- 准备一个空数组
- 遍历第一个数组,把里面的内容全部放进第三个数组里面
- 在第一个数组的末尾的位置,开始往第三个数组里面填入第二个数组的值
- strlen 函数用于获取字符串的长度
- d 用来确定数组 b 的起始填充位置,由于下标从 0 开始,所以 i + d 就是数组 b 的第一个元素填充的地址
#include <stdio.h>
#include <string.h>
int main()
{
char a[10] = {"I am "};
char b[10] = {"Chinese"};
char c[20];
for (int i = 0; i < strlen(a); ++i)
{
c[i] = a[i];
}
int d = strlen(a);
for (int i = 0; i < strlen(b); ++i)
{
c[i + d] = b[i];
}
puts(c);
return 0;
}
上课的问题:
*b 和 b 的区别
- *b是指针变量,是一个存放数值的变量,而 b 是指针,是一个存放地址的东西
- 所以 *b 由两部分组成,一个是存放数值的区域,另一个是存放地址的区域
- 右侧的结果中,第三行的是当前存放的数值的地址,每台机器的结果都会不一样
- 指针变量和指针是两个东西
- 第六行的操作是取变量 a 的地址,取地址后相当于获得了这个变量的数值,相当于获取了你家的门牌号之后就能去到你家,而变量在内存中门牌号就是地址
数组与指针的关系
- 指针指向数组的时候是指向数组的第一个元素
- 数组名是数组的首地址
|