《C语言学习笔记》— 初识C语言

一、什么是C语言

C语言是一门通用计算机编程语言(高级语言),广泛应用于底层开发,面向过程,编译器主要有:Clang、GCC、MSVC (VS2019的集成开发环境)、Turbo C等。

二、第一个C语言程序

#include <stdio.h>
int main()
{
printf("Hello world\n");
return 0;
}


//printf - 库函数 - 在屏幕上打印信息,库函数的使用需要头文件stdio.h

//主函数main - main函数是程序的入口
//写的C语言代码都是从main函数的第一行开始执行的
//一个工程中main函数有且仅有一个且main函数必须有
//C语言中所有的字符都是英文的字符

//主函数的定义
//方法一: int main() //最常用写法
//方法二: void main() //古老的写法
//方法三:int main(void) //void是在明确表示main函数不接收参数
//方法四:int main(int argc,char*argv[])//int argc,char*argv[]是在指定main函数的参数

在VS上写代码的步骤:

1.创建项目:空项目名称要有意义,不能使用中文,不要使用空格,不要使用特殊字符

2.新建源文件.c

3.写代码

三、数据类型

1.数据类型的分类

char 字符数据类型

short 短整型

int 整型

long 长整型

long long 更长的整型

float 单精度浮点数

double 双精度浮点数

//计算各数据类型所占的字节:sizeof
#include <stdio.h>
int main()
{
printf("%d\n,sizeof(char));
printf("%d\n,sizeof(short));
printf("%d\n,sizeof(int));
printf("%d\n,sizeof(long));
printf("%d\n,sizeof(long long));
printf("%d\n,sizeof(float));
printf("%d\n,sizeof(double));
printf("%d\n,sizeof(long double));
return 0;
}

//sizeof(long long)>=sizeof(long)>=sizeof(int)>sizeod(short)>sizeof(char)

2.数据类型的使用

char ch='w';
int weight=120;
int salary=20000; 

四、变量、常量

变量:值改变的量 常量:值不变的量

1.定义变量的方法

//type(类型) name(名字)
   int         age        = 150;

2.变量的命名

只能由字母(包括大小写)、数字、下划线(_)组成

不能以数字开头

长度不能超过63个字符

变量名中区分大小写

变量名中不能使用关键字

3.变量的分类

局部变量:{ }内部定义的变量

全局变量:{ }外部定义的变量

当局部变量和全局变量同名的时候,局部变量优先使用

#include <stdio.h>
int global = 2019;//全局变量
int main()
{
 int local = 2018;//局部变量
 int global = 2020;//局部变量
printf("global = %d\n",global);
return 0;
}
 //上面定义的局部变量global是没有问题的

4.变量的使用

#include <stdio.h>
int main()
{
int num1=0;
int num2=0;
int sum=0;
printf("输入两个操作数:>");
scanf("%d %d",&num1,&num2);
sum=num1+num2;
printf("sum=%d\n",sum);
return 0;
}
//输入语句:scanf
//输出语句:printf

注:在VS中使用scanf会报错 scanf_s是VS独有的
所以在VS中使用scanf需要有:_CRE_SECURE_NO_WARNINGS

方法一:

在使用scanf函数的.c文件的第一行写:#define _CRE_SECURE_NO_WARNINGS 1

但是每个源文件(.c)需要手动添加比较麻烦
方法二:

在VS中有一个文件 newc++file.cpp 找到此文件,在这个文件中加入

#define _CRE_SECURE_NO_WARNINGS 1 以后新建的代码就会自动出现这一行代码
方法三:

#pragma warning(disable:4996)  其中4996所在位置是代码报错的错误代码号,这里的4996只是举例说明。

5.变量的作用域与生命周期

(1)作用域:哪里可以使用这个名字,哪里就是这个名字的作用域

-全局变量的作用域是整个工程

-局部变量的作用域是变量所在的局部范围 定义往后的代码都OK

(2)生命周期:

变量的生命周期指的是变量的创建到变量的销毁之间的一个时间段

-局部变量的生命周期是:进入作用域生命周期开始,出作用域生命周期结束

-全局变量的生命周期是:整个程序的生命周期

//声明外部符号:extern 可以使用外部的值/内容

6.常量

C语言中的常量分为以下几种:

  • 字面常量 - 例如:100 20.0 3.14 'a' 即直接写出的值

  • const修饰的常变量 - 常属性的 - 可以修饰变量,即被const修饰的变量变成了常量,不能被修改

  • #define定义的标识符常量

  • 枚举常量 - 一一列举

#include <stdio.h>
int main()
{
const int a=10;//a就是const修饰的常变量,但本质上a还是变量(在C++中a就是常量了)
printf("a=%d\n",a);
a=100;
printf("a=%d\n",a);
return 0;
}
#include <stdio.h>
//举例
enum Sex//enum是枚举的关键字
{
MALE,//0
FEMALE,//1
SECRET//2
};
//括号中的MALE,FAMALE,SECRET为枚举常量

int main()
{
//字面变量演示
3.14;//字面常量
1000;//字面常量

//const修饰的常变量
const float pai=3.14f;//这里的pai是const修饰的常变量
pai=5.14;//是不能直接修改的

//#define的标识符常量演示
#define MAX 100
printf("max=%d\n",MAX);

//枚举常量演示
printf("%d\n",MALE);
printf("%d\n",FEMALE);
printf("%d\n",SECRET);
//注:枚举常量的默认是从0开始,依次向下递增1的
//结果展示:0 1 2

return 0;
}

 五、字符串+转义字符+注释

1.字符串

由双引号引起来的一串字符称为字符串字面值,简称字符串。

注:字符串的结束标志是一个\0的转义字符。

       在计算字符串长度的时候\0是结束标志,不算作字符串内容,统计个数时不统计在内。

#include <stdio.h>
int main()
{
	char arr1[] = "bit";//字符串
	char arr2[] = { 'b','i','t' };//字符组成的字符串
	char arr3[] = { 'b','i','t','\0' };
	printf("%s\n", arr1);//3个字符
	printf("%s\n", arr2);//随机值
	printf("%s\n", arr3);//3个字符
	return 0;
}
#include <stdio.h>
#include <string.h>
int main()
{
	char arr1[] = "bit";//字符串
	char arr2[] = { 'b','i','t' };//字符组成的字符串
	char arr3[] = { 'b','i','t','\0' };
	printf("%d\n", strlen(arr1));//3个字符
	printf("%d\n", strlen(arr2));//随机值
	printf("%d\n", strlen(arr3));//3个字符
	return 0;
}

strlen是库函数,用来求字符串长度,统计的是字符串中\0之前的字符个数

2.转义字符

转义字符顾名思义就是转变意思

转义字符释义

\?

在书写连续多个问号时使用,防止他们被解析成三字母词
\'

用于表示字符常量'

\''用于表示一个字符串内部的双引号
\\用于表示一个反斜杠,防止它被解释为一个转义序列符
\a警告字符,蜂鸣
\b退格符,相当于键盘上的backspace删除键
\n换行
\r回车
\t水平制表符(即相当于键盘上的tab键,对齐时会用到,算上原来的等于四个字节的位置)
\dddddd表示1-3个八进制的数字。如:\130转换成的字符为X
\xdddd表示1-2个十六进制的数字。如:\x30转换成的字符为0

注:1.三字母词为:??( -- [ 和??) -- ] ,在古老编译器里可能会出现这种情况。

       2.八进制转换成十进制 例如:八进制中的130转换成十进制为 8的2次方*1+8的1次方*3+8的0次方*0=64+24+0=88 在ASCII表中对应字符X

         十六进制转换成十进制 例如:十六进制中的30转换成十进制为16的1次方*3+16的0次方*0=48 在ASCII表中对应字符0

3.转义字符在计算字符串长度中为1。

#include <stdio.h>
#include <string.h>
int main()
{
	printf("%d\n", strlen("c:\test\111\test.c"));//13个字符
	printf("%d\n", strlen("c:\test\181\test.c"));//15个字符
	return 0;
}

3.注释

作用:1.代码中有不需要的代码可以直接删除,也可以注释掉。

           2.代码中有些代码比较难懂,可以加一下注释文字。

注释有两种风格:

1.C语言风格的注释 /*xxxxxx*/ 缺陷:不能嵌套注释

2.C++风格的注释 //xxxxxx 可以注释一行也可以注释多行 键盘按键:ctrl+shift+/

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值