C语言基础阶段梳理总结(一)

C语言是一种广泛应用于系统编程和应用程序开发的高级编程语言。它具有简洁、高效、灵活的特点,是学习其他编程语言的基础。所以作为准备入行嵌入式的小小白,我开始了C语的学习之旅。

开始学习的这两周,我感觉到非常充实,从觉得C语言有着非常清晰的易懂的逻辑框架,到见识到C语言庞大的知识体系也仅仅用了不到两天!!!

在这两周C语言基础的学习过程中,我感觉到指针的相关知识是让我感觉到最抽象最难以理解的,所以在学习理论知识之余,充分的练习也是必不可少的。

下面就跟我一起进入到C语言的学习旅途中吧······

一、书写规范

良好的书写规范可以提高代码的可读性和可维护性。以下是一些常见的C语言书写规范:

  1. 缩进:使用统一的缩进风格,一般为四个空格或一个制表符,用于表示代码块的层次结构。缩进可以使代码结构清晰,便于阅读和理解。

  2. 命名规范:变量、函数和常量的命名应具有描述性,尽量见名知意,遵循一定的命名规范,不能和关键字重名。

  3. 注释:在代码中添加适当的注释,对代码的用途、实现思路或关键步骤进行解释,以便自己和他人日后阅读和修改代码时能够快速理解。注释可以使用(//)进行单行注释,或使用(/* */)进行多行注释。

  4. 代码格式:代码应按照一定的格式规范进行排版,例如在关键字、运算符和逗号后添加空格,使代码更易于阅读。同时,一行代码宜控制在适当的长度范围内,以免影响代码的可读性。

  5. 常量与宏定义:使用宏定义或常量来表示重复出现的常量值,能够提高代码的可维护性。同时,在适当的情况下使用预处理器来定义常量、宏和条件编译指令。

  6. 大括号:对于代码块,包括函数、循环和条件语句,建议总是使用大括号括起来,即使只有一条语句。这样可以避免由于缩进错误而导致的逻辑错误或代码维护问题。

  7. 函数定义:函数的定义一般包括函数名、参数列表、返回类型和函数体,建议将函数定义放在文件的开头或使用头文件进行声明和定义的分离。

这些是常用的C语言书写规范,可以提高代码的清晰性和可维护性。但需要注意的是,书写规范并不是一成不变的,自己或工作实际情况进行一定的调整。最重要的是保持代码整洁和易读。

二、编程环境

虚拟机、linuxosubuntu)

母鸡呀。。。。。。

三、进制转换

二进制、八进制、十进制、十六进制

二进制:逢 2 1 0~1
八进制:逢 8 1 0~7
十进制:逢 10 1 0~9
十六进制:逢十六进 1 0~9 a~f
为了区分不同的进制:八进制前加 0 ,十六进制前加 0x 0X
76: (十进制) 076 (八进制) 0x76( 十六进制 ) 0X76 0xafc4 0XAFC4

其他进制转十进制:对应的位数乘以对应的指数次幂

二进制转十进制: 1010---------->0 2^0+1 2^1+0 2^2+1 2^3
八进制转十进制: 076--------->6 8^0+7 8^1
十六进制转十进制: 0xfac4---------->4 16^0+12 16^1+10 16^2+15 16^3

十进制转其他进制:除以其他进制倒取余

十进制转二进制:除 2 倒取余: 23---------- 1 0111
十进制转八进制:除 8 倒取余: 76----------0114
十进制转十六进制:除 16 倒取余: 76---------0x4c (0X4C)

二进制和八进制相互转换:

八进制: 0~7
八进制可以用 3bit 的二进制数去表示
例:6----------110
二进制转八进制:三个为一组,从右往左去分,前面不够可以补 0
例:001 011 010----------0132
八进制转二进制:每一位转换为 3bit 的二进制数
例:076----------111 110

二进制和十六进制相互转换:

十六进制: 0~9/a(A)~f(F)
十六进制可以用 4bit 的二进制数去表示
例:6----------0110
       C----------1100
十六进制转二进制:将每一位转换为4bit 的二进制数
0xfac53---------->1111 1010 1100 0101 0011
二进制转十六进制:将 4 4 个分开,从右往左,高位不够补 0
例:0001 1010 0110 0x1a6 0X1A6

四、数据类型和表达式

1.基本类型

整型(int)、字符型(char)、浮点型:单精度型(float)、双精度型(double)、枚举类型

32os
字符型: char(1 字节 )
整型: short 2 字节) int 4 字节) long 4 字节)
浮点型: float 4 字节) double 8 字节)
//sizeof(int) sizeof(a)
64os:
字符型: char 1 字节)
整型: short 2 字节) int 4 字节) long 8 字节)
浮点型: float 4 字节) double 8 字节)
注意:每一种数据类型所占的内存空间的大小是不同的,目的是为了让你合理的去分配内存空间

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;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值