最近工作上的任务比较繁重,搞三维设计开发CAD\CAM,用freecad和opencascade做三维软件开发,中间还有比较复杂的数据操作存储转发还有通信,整个搞了应该有一个月多的时间,最近刚刚提测完交付了一版,很酸爽。。。。从头开始学确实有点吃力,大部分时间都是自己在摸索着前进,最近除了优化的任务,准备把这个C语言基础知识走一遍,然后开始增加c++的栏目,主要是总结自己的知识所学,如果有同学有不同见解,欢迎大家共同学习,评论、留言,互关。
接着开始复习控制流程:
3.1 条件语句
if语句:用于根据条件判断执行不同的代码块。
int a = 10;
if (a > 0) {
printf("a是正数\n");
} else if (a < 0) {
printf("a是负数\n");
} else {
printf("a是零\n");
}
switch语句:根据表达式的值选择执行不同的代码块
int day = 4;
switch (day) {
case 1:
printf("星期一\n");
break;
case 2:
printf("星期二\n");
break;
case 3:
printf("星期三\n");
break;
default:
printf("其他\n");
break;
}
3.2 循环语句
while循环:在条件为真时,重复执行代码块。
int i = 0;
while (i < 5) {
printf("%d\n", i);
i++;
}
for循环:在给定初始条件、循环条件和循环后操作的情况下,重复执行代码块
int i;
for (i = 0; i < 5; i++) {
printf("%d\n", i);
}
do-while循环:先执行一次代码块,然后在条件为真时重复执行。
int i = 0;
do {
printf("%d\n", i);
i++;
} while (i < 5);
3.3 跳转语句
break语句:用于跳出当前循环或switch语句。
int i;
for (i = 0; i < 10; i++) {
if (i == 5) {
break;
}
printf("%d\n", i);
}
continue语句:用于结束当前迭代并进入下一次迭代。
int i;
for (i = 0; i < 10; i++) {
if (i == 5) {
continue;
}
printf("%d\n", i);
}
return语句:用于结束函数的执行,并返回一个值(如果有)
int add(int a, int b) {
return a + b;
}
4. 数组和字符串
数组和字符串是C语言中常用的数据结构。数组是相同类型元素的集合,通过索引访问元素;字符串是字符数组的特例,由字符组成并以空字符’\0’结尾。
4.1 数组
数组由一组相同类型的元素组成,每个元素在内存中都有唯一的索引,从0(下标)开始。可以通过索引访问和修改数组中的元素。
声明数组:
int numbers[5]; // 声明一个包含5个整数的数组
double values[10]; // 声明一个包含10个浮点数的数组
初始化数组:
int numbers[] = {1, 2, 3, 4, 5}; // 初始化数组并赋值
char name[20] = "Hello"; // 初始化字符数组
访问数组元素:
int x = numbers[2]; // 访问numbers数组的第3个元素
numbers[0] = 10; // 修改numbers数组的第1个元素的值为10
4.2 字符串
字符串是字符数组的特例,以空字符'\0'作为结尾。可以用字符数组或字符指针表示字符串。
声明和初始化字符串:
char str1[10] = "Hello"; // 声明并初始化一个字符数组
char str2[] = "World"; // 初始化字符数组,大小自动计算
char *str3 = "Hello World"; // 声明一个指向字符的指针
字符串操作函数:
strlen(str); // 返回字符串的长度
strcpy(dest, src); // 将src字符串复制到dest字符串
strcat(dest, src); // 将src字符串连接到dest字符串的末尾
strcmp(str1, str2); // 比较两个字符串的大小,相等返回0
访问字符串元素:
char ch = str[2]; // 访问字符串的第3个字符
str[0] = 'H'; // 修改字符串的第1个字符为'H'
字符串搜索(strstr):strstr()函数用于在一个字符串中搜索指定的子字符串。
char str[20] = "Hello World";
char *substring = strstr(str, "World");
if (substring != NULL) {
printf("Substring found: %s\n", substring);
} else {
printf("Substring not found\n");
}
注意,使用字符数组表示字符串时需要留出足够的空间来存储字符串的字符,包括结尾的空字符'\0'。
数组和字符串在编程中非常常用,可以用于存储和处理各种类型的数据和文本。了解如何声明、初始化和访问数组和字符串的元素以及使用相关的函数,将更好地掌握C语言编程的基础。