C语言是一种广泛应用于系统编程和应用程序开发的高级编程语言。它具有简洁、高效、灵活的特点,是学习其他编程语言的基础。所以作为准备入行嵌入式的小小白,我开始了C语的学习之旅。
开始学习的这两周,我感觉到非常充实,从觉得C语言有着非常清晰的易懂的逻辑框架,到见识到C语言庞大的知识体系也仅仅用了不到两天!!!
在这两周C语言基础的学习过程中,我感觉到指针的相关知识是让我感觉到最抽象最难以理解的,所以在学习理论知识之余,充分的练习也是必不可少的。
下面就跟我一起进入到C语言的学习旅途中吧······
一、书写规范
良好的书写规范可以提高代码的可读性和可维护性。以下是一些常见的C语言书写规范:
-
缩进:使用统一的缩进风格,一般为四个空格或一个制表符,用于表示代码块的层次结构。缩进可以使代码结构清晰,便于阅读和理解。
-
命名规范:变量、函数和常量的命名应具有描述性,尽量见名知意,遵循一定的命名规范,不能和关键字重名。
-
注释:在代码中添加适当的注释,对代码的用途、实现思路或关键步骤进行解释,以便自己和他人日后阅读和修改代码时能够快速理解。注释可以使用(//)进行单行注释,或使用(/* */)进行多行注释。
-
代码格式:代码应按照一定的格式规范进行排版,例如在关键字、运算符和逗号后添加空格,使代码更易于阅读。同时,一行代码宜控制在适当的长度范围内,以免影响代码的可读性。
-
常量与宏定义:使用宏定义或常量来表示重复出现的常量值,能够提高代码的可维护性。同时,在适当的情况下使用预处理器来定义常量、宏和条件编译指令。
-
大括号:对于代码块,包括函数、循环和条件语句,建议总是使用大括号括起来,即使只有一条语句。这样可以避免由于缩进错误而导致的逻辑错误或代码维护问题。
-
函数定义:函数的定义一般包括函数名、参数列表、返回类型和函数体,建议将函数定义放在文件的开头或使用头文件进行声明和定义的分离。
这些是常用的C语言书写规范,可以提高代码的清晰性和可维护性。但需要注意的是,书写规范并不是一成不变的,自己或工作实际情况进行一定的调整。最重要的是保持代码整洁和易读。
二、编程环境
虚拟机、linuxos(ubuntu)
三、进制转换
二进制、八进制、十进制、十六进制
其他进制转十进制:对应的位数乘以对应的指数次幂
十进制转其他进制:除以其他进制倒取余
二进制和八进制相互转换:
二进制和十六进制相互转换:
四、数据类型和表达式
1.基本类型
整型(int)、字符型(char)、浮点型:单精度型(float)、双精度型(double)、枚举类型
2.构造类型
1.数组类型
数组:按序排列的同类数据元素的集合
一维数组:类型说明符 数组名[数组长度];
二维/多维数组:类型说明符 数组名[行数][列数]; 多维数组以此类推
字符数组:char 数组名[数组长度];C语言没有字符串类型,字符串通常用字符数组表示
数组定义:类型说明符 数组名称[数组长度];
数组引用:
一维数组:数组名[索引];
int arr[5]; // 定义一个包含5个整数的一维数组
arr[0] = 1; // 给数组的第一个元素赋值为1
int x = arr[2]; // 将数组的第三个元素赋值给变量x
二维数组:数组名[行索引][列索引];
int matrix[3][3]; // 定义一个3行3列的二维数组
matrix[0][0] = 1; // 给数组的第一行第一列元素赋值为1
int y = matrix[1][2]; // 将数组的第二行第三列元素赋值给变量y
索引都是从0开始的
数组赋值:
1.在定义的时候赋初值:int a[10]={1,2,3,4,5,6,7,8,9,10};或int a[]={1,2,3,4,5,6,7,8,9,10};
2.先定义,再赋值:int a[10];a = {1,2,3,4,5,6,7,8,9,10};
字符数组赋值:
1.char Hello[] = {'H','e','l','l','o'};
2.char Hello[] = "Hello";
char str1[10] = {'H', 'e', 'l', 'l', 'o'}; // 使用字符数组的方式给其赋值
char str2[10] = "Hello"; // 使用字符串的方式给字符数组赋值
char ch = str2[1]; // 将字符数组的第二个元素赋值给变量ch
第二种方式会在字符数组中结尾添加一个\0作为字符串结束符
提示:数组赋值时,如果给定值数量小于数组长度,系统默认填充0
剩下的在慢慢总结,,,,,
下面是一些C语言基础知识的代码示例:
变量和基本数据类型:
#include <stdio.h>
int main() {
int number = 10;
float pi = 3.14;
char letter = 'A';
printf("Number: %d\n", number);
printf("Pi: %.2f\n", pi);
printf("Letter: %c\n", letter);
return 0;
}
条件语句:
#include <stdio.h>
int main() {
int age;
printf("Enter your age: ");
scanf("%d", &age);
if (age >= 18) {
printf("You are an adult.\n");
} else {
printf("You are a minor.\n");
}
return 0;
}
循环语句:
#include <stdio.h>
int main() {
int i;
for (i = 1; i <= 5; i++) {
printf("%d\n", i);
}
int j = 1;
while (j <= 5) {
printf("%d\n", j);
j++;
}
int k = 1;
do {
printf("%d\n", k);
k++;
} while (k <= 5);
return 0;
}
数组和字符串:
#include <stdio.h>
int main() {
int numbers[] = {1, 2, 3, 4, 5};
printf("First element: %d\n", numbers[0]);
char name[] = "John";
printf("Name: %s\n", name);
return 0;
}
函数:
#include <stdio.h>
int add(int a, int b) {
return a + b;
}
int main() {
int result = add(5, 7);
printf("Result: %d\n", result);
return 0;
}
输入输出:
#include <stdio.h>
int main() {
int num;
printf("Enter a number: ");
scanf("%d", &num);
printf("You entered: %d\n", num);
FILE *file = fopen("example.txt", "w");
fprintf(file, "Hello, World!\n");
fclose(file);
return 0;
}