前言

作为一个已经学习一个学期计算机知识的大学牲,这还是第一次写博客,浅浅记录一下自己的学习C语言的历程吧。作为一个新手,还真能是无从下手,那话不多说,直接进入正题吧。

正文

要知道电脑只能接收0、1这两个数字,所以首先要了解电脑接收数据的以下几个单位:

  • bit--比特位(即电脑中存放0或1)(eg:1)
  • byte--字节 (一个字节 = 8个比特位的大小)(eg:01101001)
  • 1kb=1024byte, 1mb兆=1024kb, 1gb=1024mb

常用基本数据类型

  • char--字符数据类型 (ps:C语言中无字符串类型)
  • short--短整型
  • float --单精度浮点数(打印printf 出来的效果是保留5位小数)
  • double--双精度浮点数

输出控制符

  • %d--打印整型(int)    long int 用 %ld
  • %c--打印字符
  • %f--打印浮点数字-打小数(float)    double 用 %lf
  • %p--以地址的形式打印
  • %x--打印16进制数字
  • %。。。。(等等 ,这块知识不太重要)

转义字符(是一个字符)

  • \n ​ 换行
  • \b 退格
  • \t 水平制表符(相当于tab键)
  • \r 回车 ( \\ \' \" )

注释

  • /* /* (不可嵌套)
  • //
  • 快捷键 ctrl + k + c (取消注释 ctrl + k +u )​

初写代码的一般结构

#include <stdio.h>  //(standard intput output 标准输入输出)

int main() //int main()中 int 代表main函数调用后返回一个整型值
{
printf("Hello world\n");
//printf函数(print function打印函数)为 库函数 故需要一个stdio.h(std-standard,i-intput,o-output)的头文件

char ch = 'A'; //相当于开辟了一块 字符型 的内存(即申请一块空间),命名为ch,并将A赋值给ch
eg:short num = 20; //意为向内存申请2个字节(short为2个字节)=16bit位,用来存放20
int age = 20;
printf("%c\n", ch); //%c--打印字符格式的数据(格式固定*)
printf("%d\n", age); //%d--打印整型十进制数据

return 0;
}

全局变量和局部变量

注意:当全局变量和局部变量的名字相同时,打印输出时局部变量优先(建议

两者名字不要相同)

#include <stdio.h>

int num2 = 20; //全局变量--定义在代码块(即大括号{})之外的变量,名字为num2

int main()
{
int num1 = 0; //局部变量--定义在代码块({})内部的变量,名字为num1
int num3 = 0;
int sum = 0; //C语言语法规定,变量要定义在当前代码块的最前面**
//输入数据--使用输入函数scanf
scanf("%d%d", &num1, &num3); //取地址符&
sum = num1 + num3;
printf("sum = %d\n", sum);
return 0;
}

另外,还有一个小知识:extern 是用于声明外部符号的(后面细说)

常量

  • ​字面常量(eg:3 5 6 )
  • const修饰的常变量(如下代码块)
  • #define定义的标识符常量(如下)
  • 枚举常量--一一列举 (枚举关键词---enum)​
#define MAX 10
int main()
{
//const--常属性
const int num = 5; //此时,num为const修饰的常变量
//num = 8; //注意:此时这个程序就会报错,因为此时num为常变量,其值不能修改
printf("%d\n",num);
int arr[MAX] = {0}; //ok,因为MAX为标识符常量
int arr[num] = {0}; //error,因为num虽然有常属性,但本质仍是变量。
return 0;
}

字符串

即由""(双引号)引起的一串字符序列。

ps:字符常量是1个字符,而字符串常量是0个或多个字符序列组成的。在计算字符串长度时 \0 是结束标志,不算作其内容。

include <stdio.h>
int main()
{
//数据在计算机上是以二进制存储的(ASCII编码),因此每个字符都有其对应的ASCII码值(eg:a--97,A--65)
char arr1[] = "abc";//数组,
//"abc"相当于'a''b''c''\0'-----'\0'为字符串的结束标志
char arr2[] = {'a','b','c',0};//和arr1的运行结果相同,即'\0'的ASCII码值为0
return 0
}

未完待续。。。。。