目录

前言

一、第一个C语言程序:Hello,World

二、数据类型

三、变量与常量

1、变量

1)变量的定义

2)全局变量与局部变量

2、常量

1)字面常量

2)define定义的常量

3)const修饰的常变量

4)枚举常量


前言

这是一篇偏笔记性质的文章,因此在学习C语言过程中可能会遇到的一些问题也会一同列进去。

自学C语言时建议选择一些合适的视频来辅助学习。这里推荐两个,一个是MOOC慕课翁凯的C语言程序设计和B站鹏哥的C语言编程。

C语言程序设计_浙江大学_中国大学MOOC(慕课) (icourse163)

C语言编程2021C语言零基础视频教程C语言入门初学者小白C语言考研C语言专升本C语言期末考试不挂科C语言程序设计C语言期末突击C语言视频教程谭浩强)_哔哩哔哩_bilibili

我自学时选择的是鹏哥的视频,所以这篇文章的大部分内容也都是来源于我听鹏哥课时的笔记。

完成本文章的所有内容会花上一些时间。

一、第一个C语言程序:Hello,World

#include <stdio.h>//头文件
int main()//主函数
{   //花括号内的是函数体
	printf("Hello,World");//使用头文件stdio里的库函数printf将Hello,world输出到屏幕上
	return 0;//结束程序并返回
}

这是一个大多数C语言初学者的第一个C语言程序,我们可以通过这个程序简单了解C语言并帮助初学者写出自己的第一个C语言程序。

  • #include 是一个预处理命令,用于引用头文件。
  • //双斜杠指此行在//后的内容为注释。注释是程序员写给自己或别人的,防止看不懂代码。计算机会自动跳过注释,所以你写多长都没关系。(写注释可是一个好习惯,工作了就另说~)
  • <stdio.h>表明引用的头文件是stdio。头文件名输入至<>尖括号内,后缀.h表示stdio是头文件。一些常见的库函数(如上方的printf)均包含在stdio.h里面。
  • int main() 中的int表示返回类型为整型,可以理解为数学中的整数。main是主函数,一个程序只能有一个main函数。
  • {}花括号的里面是函数体。程序大都写在花括号内。
  • printf是一个头文件stdio.h中声明的库函数,作用是将双引号里的内容Hello,World输出到屏幕上
  • ;分号表示此行代码结束,计算机会立即读取下一行代码。
  • return:0表示程序程序结束并返回。因为主函数是返回类型是整型,所以是返回一个整数0;

注意:所使用符号皆为英文符号,否则程序无法运行

现在你可以试着打出你的第一个C语言程序并向世界问好了。

二、数据类型

数据类型主要用于定义合适的变量(后面会讲到什么是变量)。

C语言中常见的数据类型
数据类型中文名大小(单位:字节byte)
int整型(即整数)4
short短整型2
long长整型>=4
long long超长整型8
char字符型1
float单精度浮点型4
double双精度浮点型8

例如:要定义一个整型变量a,就可以用int数据类型;如果要定义一个浮点型变量就需要用到float浮点型;字符型变量自然就要用到字符型char。

其中浮点型(理解成数学中的小数就可以了)又可以分为单精度和双精度,区别是双精度的位数更多。

整型也有短整型、整型、长整型、超长整型之分,同样是为了方便程序员选用合适的数据类型。 


这里浅谈一下计算机中的单位,帮助初学者建立认知。

最小的单位为比特bit,然后是字节byte,kb,mb,gb,tb。

1byte = 8 bit; 1kb = 1024byte;1mb = 1024kb;1gb = 1024mb; 1tb =1024gb。

注:1024即2的10次方


可以用库函数sizeof()来查看各种数据类型的大小。

#include <stdio.h>
int main()
{
	printf("int的大小=%d\n",sizeof(int));
	printf("short的大小=%d\n", sizeof(short));
	printf("long的大小=%d\n", sizeof(long));
	printf("long long的大小=%d\n", sizeof(long long));
	printf("char的大小=%d\n", sizeof(char));
	printf("float的大小=%d\n", sizeof(float));
	printf("double的大小=%d\n", sizeof(double));
	return 0;
}
  • %d是format标签,会被后方附加参数中的指定值替换。d是格式字符,指替换值是整型。不同数据类型使用的格式字符不同。
格式字符
格式字符对应类型
d整型
f单精度浮点型
lf双精度浮点型

c

单个字符
s字符串(后面会讲)
  • \n是转义字符,表示换行。

三、变量与常量

1、变量

1)变量的定义

变量即可变的量,它的值是可以改变的。

  • 定义变量的一般格式为:数据类型 变量名 = 所赋值
  • 可以不赋值直接定义:数据类型 变量名
int i = 1;//定义一个整型变量i,赋值1
float f = 0.1//定义一个单精度浮点型变量f,赋值为0.1
char ch = 'a';//定义一个字符型变量ch,赋值为a
int b;//不赋值,直接定义

注意:定义字符型变量时所赋的值需用''单引号括起来 


变量名,常量名和函数名等统称为标识符。标识符的命名需遵循以下规则:

  1. 标识符名只能由英文字母,下划线和数字组成,且只能由下划线和字母开头
  2. 英文字母区分大小写
  3. 标识符名不可以是关键字,像printf和int这种在C语言中有特殊含义的单词就是关键字,在命名时不可与它们相同

下面用scanf函数来简单说明变量的值可以被改变的好处:

#include <stdio.h>
int main()
{
	int a = 1;//定义一个变量
	printf("原变量为%d\n", a);
	scanf("%d", & a);//输入3(或者其他整数)
	printf("改变后的变量为%d\n", a);//变量值被改变
	return 0;
}

scanf函数的使用与printf类似,但注意需要在附加参数前加一个&

注意:scanf函数具有缺陷,所以有一些编译器会弹出警告,可以用如下方法解决:

  • 在代码第一行添加 #define _CRT_SECURE_NO_WARNINGS 1来屏蔽警告。
#define _CRT_SECURE_NO_WARNINGS 1//要写在第一行
  • 如果是VS编译器可以用scanf_s来代替scanf,但是scanf_s函数只能在VS编译器中使用,其他编译器无法使用。

2)全局变量与局部变量

全局变量即定义在main函数之外的变量,局部变量即定义在main函数之内的变量。

#include <stdio.h>
int q = 1;//全局变量
int main()
{
  int j = 2;//局部变量
  return 0;
}

全局变量在整个.c源文件中都可以使用,不同的源文件则需要用extern声明一下。

int a = 0;//在一个源文件中定义一个全局变量
extern int a;//在另一个源文件中声明一下即可在该源文件中使用此全局变量

2、常量

常量即不可变的,无法修改的量。

常量有以下几种

1)字面常量

字如其名是直接打在程序里的常量。

233//字面常量
aaaa//字面常量

2)define定义的常量

同样可以赋值或不赋值。

#define d 1//赋值
#define e//不赋值

3)const修饰的常变量

在定义的变量前加一个const就是常变量。但需注意const修饰的的常变量只是让变量具有了常属性,其本质仍然是一个变量。

const int a = 1;//const修饰的常变量

4)枚举常量

枚举常量用来定义可被一一列举的量。

枚举常量的值从0开始递增。

#include <stdio.h>
int main()
{
	enum Three//定义3个枚举常量
	{
		first,
		second,
		third
	};
	printf("first的值=%d\n", first);//first的值为0
	printf("second的值=%d\n", second);//second的值为1
	printf("third的值=%d\n", third);//third的值为2
	return 0;
}

可以用创建好的枚举常量进一步创建变量

	enum Three one = first;//进一步用它创建变量

更多推荐

C语言基础(一)