学习内容:C语言基础
一、C语言基础知识
1、数组
1、字符数组: 数组中的元素都是字符。
2、定义的一般形式:
char 数组名[元素个数];
eg:
char buf[32]; // ==> 定义一个最多存放 31个字符的字符数组。
3、字符数组的元素访问:
数组名[下标];
eg:
buf[0]; // ==> 访问字符数组的第一个元素
4、格式化输出 字符数组的元素。
1、访问每个元素进行打印。格式化控制符使用 %c
for(i = 0; i < 32; i++)
printf("%c", buf[i]);
printf("n");
2、直接打印所有元素。 格式控制符使用 %s
printf("%sn", buf);
2、指针
1、地址:C语言中,内存由n个一个字节的内存单元格构成,
每个内存单元格都有 一个编号,称为地址。
注意:数组的数组名就是该数组首元素的地址。
2、指针:C语言内存单元的地址。指针就是地址。
3、指针变量:存放地址的变量。
如果地址、指针变量都能做区分,则可以统称为 指针。
4、指针定义的一般语法:
数据类型 * 指针变量名;
eg:
int *p; //定义一个整型指针p,p也称为指针变量。
指针 p的数据类型为 int;
指针变量p的数据类型为 int *
指针的数据类型为 指针目标的数据类型。
5、定义一个指针指向 目标。
数据类型 *p = 地址;
eg:
int a = 13;
int * p = &a; //指针定义时的 * 为类型说明符
// a = 13 = *p = *(&a) = *(*(&p))
定义一个整型指针 p 指向 a变量。
其中 a变量的地址赋值给了 p。
*p 访问指针目标的内容, 此处 * 号为 运算符,求地址上的内容。
6、定义一个指针q 指向 指针p。
int a = 13;
int *p = &a;
int ** q = &p;
// ==> *q => p ;; *p => a ;; *(*q) => a
练习:必须使用指针来实现。
1、定义一个字符数组,从键盘输入数据,计算出 键盘输入的字符的个数。
2、定义两个字符数组
char s1[32] = "hello world";
char s2[32];
编写程序,打印 s2的结果为 "hello world"。
char *p = s1;
// 野指针 此时 q[i](*(q+i))是野指针的非法使用,会终止程序运行
char *q;
q = s2;
while(*p){
*q = *p;
p++;
q++;
}
while(*p){
*q++ = *p++;
}
while(*q++ = *p++);
3、定义初始化两个字符数组
char s1[32] = "welcome to ";
char s2[32] = "sanxia";
编写程序,打印s1的结果为 "welcome to sanxia"。
char *p = s1;
char *q = s2;
while(*p++); // ==> 让指针p指向s1末尾的 ' '
while(*p++ = *q++);:
学习时间:
- 5.29:周日上午 8 点 20-上午 11 点 40



