初识c语言(一)


前言

c语言几乎可以算是编程的基础了,作为基础而言,那肯定得把它拿捏的死死的,现在来看看这篇文章吧----介绍的c的基础,对小白很友好,清晰易懂。
本篇主要介绍了常用的函数以及数据类型,常变量,转义字符,字符串等


一、c是什么?

对于很多没有接触过编程的人甚至有的接触过的人而言对c的概念可能理解的都没那么清楚,那么我们从这开始了解c。
c语言是一门计算机语言,而计算机语言又是人和计算机交流的语言(c只是其中一种,计算机语言还有python,java等),同时c语言是一门面向过程的语言(更注重过程),c++,java等是面向对象的语言(以对象为主)。在对c编程的时候,我使用的是vs2019版本,此时注意.c结尾的为源文件,.h结尾的为头文件,而编译的时候我们需要使用源文件呦!

二、main函数

这里我先介绍main函数,因为main函数是程序的入口,尤其重要,main函数的一般格式如下:return 0的意思代表正常返回,当return后面的数为非零的时候表示不正常返回,所以main函数中为return 0。

int main()
{
return 0;
}

三、printf函数

来了解了解第二常用函数—printf函数(它同时为库函数),使用它时需要引入头文件(库函数使用都需要引入头文件)------stdio.h,这个函数表示想在屏幕上打印出数据(在控制台呈现给我们),格式如下(输出结果如下):

#include <stdio.h>
int main(){
printf("hello c");
return 0}

这是运行结果
补充:打印的时候:
如果为十进制整数,前面为%d
如果为小数,前面为%f
如果为字符,前面为%c
如果为字符串,前面为%s

四、scanf函数

从键盘上输入数据,此时注意在vs中直接用scanf会报错,它会提示你使用scanf_s这个函数,虽然程序能正常运行,但scanf_s这个函数是vs提供的,所以不具有跨平台性,所以不建议这么做,更好的解决方法是:在源文件的所有代码的第一行,第一行,第一行(重要的事情说三遍)加上一段代码:#define _CRT_SECURE_NO_WARNINGS 1这样在使用scanf函数就不会报错了,具体代码如下(结果如下):
输入格式(前面看类型而变,以整型为例):scanf(“%d”,&你要将输入的数放在的地方的变量);

#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
int main()
{
	int n;
	//声明一下
	printf("请从键盘输入一个数:");
	//输入了
	scanf("%d", &n);
	//可以输出n看看是否输入进去
	printf("%d", n);
	return 0;
}

在这里插入图片描述

四、数据类型

1.char //字符类型(也可以理解为描述整型,其ASCALL码为整数)
2.int //整型(用于整数)
3.long //长整型(用于整数)
4.long long //更长的整型(用于整数)
5.short //短整型 (用于整数)
6.float //单精度浮点数浮点(用于小数)
7.double //双精度浮点数(用于小数)(如果为小数的时候,编译器默认为double类型)
为什么描述整型和小数有那么多类型?
每个类型所允许范围不一样(计算机中数据都是以二进制形式存储,一个二进制表示单位为一位(1b)而1B(字节)=8b),我们可以用sizeof函数来看类型多大范围(它的单位是字节),代码如下:(注意我这里是64bit的运行,如果为32bit的结果和这个不同)

#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
int main() {
	printf("%d\n", sizeof(char));
	printf("%d\n", sizeof(int));
	printf("%d\n", sizeof(long));
	printf("%d\n", sizeof(long long));
	printf("%d\n", sizeof(short));
	printf("%d\n", sizeof(float));
	printf("%d\n", sizeof(double));
	return 0;
}

在这里插入图片描述


五、变量和常量

由名字可以了解到,变量表示可以变的量,而常量表示不可以变的量。
1.变量

A.变量定义方法:类型+变量名
eg: int age;(未初始化)
int n=18;(初始化了)
注意:变量名字不是随随便便起的,有一个命名规则:
a.只能由字母(大写或者小写),数字和下划线(_)组成。
b.数字不可以开头
c.不能使用关键字
d.变量名区分大小写
e.长度不可以超过63个字符(64bit的系统中);

B.变量分为局部变量和全局变量
可以简单区分:在大括号内部的为局部变量,在外部的为全局变量。
(局部变量和全局变量同名的时候,优先用局部变量。)
eg:

#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>

int m = 100;//全局变量
int main() {
	int n = 20;//局部变量
	return 0;
}

补充一个知识点:生命周期概念:从变量创建开始到变量销毁之间的时间段。
全局变量可以应用于整个c项目(自己创建的,下面我会有代码举例),而局部变量只可以应用于自己的那个局部范围。
全局变量的生命周期为整个程序的生命周期。
局部变量的声明周期为进入它的那个范围开始,出了那个范围结束。
全局变量应用举例:
a.最基本的应用

#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>

int m = 100;//全局变量
int main() {
	printf("%d\n", m);
	return 0;
}

在这里插入图片描述
b.第二用法(这个主要是为了表现出来可以应用于整个c项目)
在别的.c文件中用另一个.c文件的全局变量时候只需眼声明一下,就可以用了。(eg:extern int m;)

test01.c中:
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>

int m = 100;//全局变量

test02.c中:
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
int main() {
	extern int m;
	printf("%d\n", m);
	return 0;
}

在这里插入图片描述
2.常量
a.字面常量(直接写出来的一个常量值)
eg:30,“abcdefg”,2.45
b.const修饰的常变量(但不允许被修改,其本身仍为变量)
eg:const int m=88;
c.#define定义的标识符常量(不可被修改,本质为常量)
格式为:#define 名字 数值
eg:

#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>

#define max 100
int main() {
	int a = max;
	printf("%d\n", a);
	return 0;
}

在这里插入图片描述d.枚举常量
格式如下:
enum 名字{
(eg:)male,//可以初始化,eg:male=4,(初始化后就不允许再改变了)
(eg:)female,
(eg:)age
};
male,female,age都是枚举常量,没初始化时,开头的枚举常量默认值为0,往下依次加一。

#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>

enum sex
{
	male,
	female,
	age
};
int main() {
	printf("%d\n", male);
	printf("%d\n", female);
	printf("%d\n", age);
	return 0;
}

在这里插入图片描述

六、字符串

有人区分不出字符和字符串,简单而言,键盘上输出的都为字符,单引号包起来的为字符,双引号包起来的为字符串。在c中
eg:“asdfgg”----->字符串
‘g’------>字符
字符串结束标志\0,计算字符串长度的时候,\0不算在长度里面
可以用strlen来算字符串长度,但strlen为一个库函数,使用时需要引入头文件
#include<string.h>

A.首先区分一下有没有\0
char arr1[]=“abcdef”;//末尾有\0
char arr2[]={‘a’,‘b’,‘c’,‘d’,‘e’,‘f’};//末尾没有\0
打印后输出结果为:(因为第二个所定义数组后面没有\0,所以会一直往后查找,直到遇到\0才会停止,所以第二打印会出现如图结果)
第二个的解决方法:
char arr2[]={‘a’,‘b’,‘c’,‘d’,‘e’,‘f’,‘\0’};
在这里插入图片描述B.使用strlen计算字符串长度
\0之前的字符,不算\0本身

#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include<string.h>
int main() {
	char arr1[] = "abcdef";
	char arr2[] = { 'a','b','c','d','e','f'};
	char arr3[] = { 'a','b','c','d','e','f','\0' };
	printf("%d\n", strlen(arr1));
	printf("%d\n", strlen(arr2));
	printf("%d\n", strlen(arr3));
	return 0;
}

在这里插入图片描述

七、转义字符

把原来字符意思转变了。
大致表如下:
在这里插入图片描述
三字母词-----三字母词就是几个字符的序列,合起来表示另一个字符。
在这里插入图片描述
这个转义字符很多用于路径:
输出路径:
如图这样输出,得到的结果不太对,如图:

#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
int main() {
	char arr[] = "c:\test\code";
	printf("%s\n", arr);
	return 0;
}

在这里插入图片描述
改进后:

#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
int main() {
	char arr[] = "c:\\test\\code";
	printf("%s\n", arr);
	return 0;
}

在这里插入图片描述

八、注释

  1. //-------->这个注释可以用于多行或单行
  2. //注释多个语句

总结

本篇文章主要是对c语言中的一部分基础知识做了详细解释,比方说常用的数据类型,字符串等,c中其余基础知识见后面的笔记吧,现在是c的基础,一定得了解透彻,这样对以后了解c的深层有帮助呦。

  • 7
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 6
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值