初始C语言(1)

本文是C语言的基础教程,涵盖了C语言的基本概念,如数据类型、变量、常量、字符串和转义字符、选择语句、循环语句、函数以及数组。通过实例介绍了C语言程序的编写,包括变量的声明与使用、常量的定义、字符串的处理以及基本的控制流程。此外,还讲解了函数的定义和数组的操作,为初学者提供了全面的C语言入门知识。
摘要由CSDN通过智能技术生成

目录

什么是C语言?

第一个C语言程序

数据类型

变量

常量

字符串+转义字符

选择语句

循环语句

函数

数组

什么是C语言?

其实c语言就是一个人与计算机交流的语言。

第一个C语言程序

首先看代码:

#include <stdio.h>
//stdio-标准输入输出

//int--整型
int main()
{
	//库函数--打印函数
	printf("hello world\n");
	return 0;
}

#include <stdio.h>--代表头文件,其中sdtio是标准输入输出

int main()--是主函数,在c语言的一个工程中有且只能有一个主函数,int表示整型

printf(" ")---打印函数,上面代码表示在屏幕是打印出hello world。

数据类型

数据类型有以下几种:

char         // 字符数据类型
short       // 短整型
int         // 整形
long         // 长整型
long long   // 更长的整形
float       // 单精度浮点数
double       // 双精度浮点数

举一个简单的例子:

int main()
{
	//数据类型
	int age = 10;
	int price = 50;
	double weight = 55.5; //double-双精度浮点型
	return 0;
}

age--年龄是用int

prince-价格是用int

weight-体重一般用浮点型

对于数据类型,我们要知道每种数据类型所占的空间大小,具体做法如下代码:

int main()
{
	//如何计算一个类型创建变量所占空间的大小呢?
	//sizeof()--计算大小
	printf("%d\n", sizeof(char));//1-代表都是字节
	printf("%d\n", sizeof(short));//2
	printf("%d\n", sizeof(int));//4
	printf("%d\n", sizeof(long));//4
	printf("%d\n", sizeof(long long));//8
	printf("%d\n", sizeof(float));//4
	printf("%d\n", sizeof(double));//8
	return 0;
}

siezof()--可以用来计算大小,当你输入上面的代码会发现每种类型所占的空间大小是不一样的,拿int来举例,它所占空间大小是4个字节。

下面有一个小的知识点就是ASCII码,举个例子

int main()
{
	char ch = 'e';
	printf("%c\n", ch);
	printf("%d\n", ch);//101--字符对于的ASCII码
	//每个字符都有对于的ASCII码值
	return 0;
}

当我们打印在屏幕上会发现,第一行打印出的是e,因为%c是打印的字符,第二行打印出的是101,是因为%d打印出的是整型,字符e对应的ASCII码值是101。

变量

可以修改的量叫做变量,例如:年龄、工资等。

变量举例:

int main()
{
	//age是变量--可以修改
	short age=10;
	age = 11;
	printf("%d\n", age);
	//定义变量
	float weight;
	char sex = 'm';
	return 0;
}

变量又分为全局变量和局部变量。

全局变量:一般在大括号的外面,在整个程序中都可以使用。

局部变量:一般在大括号内部,在当前范围内使用。

int j = 100;//j是全局变量
int a = 100;
int main()
{
	int a = 10; //a是局部变量
	printf("%d\n", a);//当全局变量名称跟局部变量名称可以相同,相同时局部变量优先与全局变量
	//不建议名称相同
	return 0;
}
 

上面代码中j是全局变量,括号里面的a是局部变量,还有一点应当注意,当全局变量与局部变的变量名相同时,局部变量优先于全局变量,一般不建议同名。

为了理解变量的使用,我们举一个两个数相加的例子。

int main()
{
	//2个整数相加
	int num1 = 0;
	int num2 = 0;
	int sum = 0;
	//输入
	scanf("%d%d", &num1, &num2);//前面什么格式输入就给什么格式--&取地址
	sum = num1 + num2;
	printf("%d\n", sum);
	return 0;
}

里面用到了scanf是输入函数,你可以就屏幕上输入你想要相加的数字,但是要注意要用取地址符号&,上述代码就是一个简单的求和方法。

变量的作用域和生命周期

作用域就是变量哪里可以使用,哪里就是它的作用域。
局部变量的作用域:局部变量所在的局部范围。
全局变量的作用域:整个工程都可以使用--就算两个.C也可以使用,但需要使用外部声明。

生命周期:从变量创建到销毁。
局部变量的生命周期:进去作用域生命周期开始,出作用域生命周期结束。
全局变量的生命周期:整个程序的生命周期--也就是main函数的生命周期。

常量

C 语言中的常量分为以下以下几种:
  1. 字面常量
  2. const 修饰的常变量
  3. #defifine 定义的标识符常量
  4. 枚举常量

字面常量举例:

int main()
{
	3.14;//字面常量
	return 0;
}

const修饰的常变量举例:

int main()
{
	//const修饰常变量
	//加入const后a是不能被改变的
	const int a = 100; 
	printf("%d\n", a);

	//一个变量不能被改变,说明变量具有常属性--但是本质上还是变量
	const int n = 100;
	int arr[n] = { 0 }; //不能写n,arr[]里面要放常量
	return 0;
}

需要注意的是const修饰的常变量只是把一个变量具有了常属性,本质上还是变量。常属性表现在上面a=100后,a的值是不能修改的,为什么说本质上是变量呢,const int n = 100    int arr[n]=0;这种写法是错误,n还是变量,不能直接写在数组当中。

#defifine 定义的标识符常量举例:

#define MAX 100  //MAX是没法修改的,MAX是常量
int main()
{
	int a = MAX; 
	printf("%d\n", a); //a=100
	return 0;
}

上面代码中MAX变成了常量。

枚举常量举例:

enum Sex
{
	//枚举的可能取值-枚举常量
	MALE=3,//可以赋初值,默认是0
	FEMALE=7,//默认是1
	SECRET=8,
};

int main()
{
	//enum Sex s = MALE;
	printf("%d\n", MALE);//0 枚举常量默认从0开始
	printf("%d\n", FEMALE);//1
	printf("%d\n", SECRET);//2
	//MALE = 3; //写法错误,没法修改
	return 0;
}

枚举变量指的是一一列举,上面代码中enum Sex 是枚举类型,它里面是枚举常量,枚举常量默认是从0开始的。

字符串+转义字符

字符串由双引号引起来的一串字符,例如:“helllo world”,字符串需要我们特别注意的是字符串的结束标志是\0,并且在计算字符串的长度时,\0不算作字符串的内容。

举例:

int main()
{
	//abcdef\0
	char ch[] = "abcdef";
	printf("%s\n", ch); //%s打印字符串--abcdef
	//strlen库函数--求字符串长度,\0是字符串的结束标志,不算长度
	printf("%d\n", strlen(ch));//6--不算\0
	char ch1[] = { 'a', 'b', 'c', 'd', 'e', 'f' };//调试没有\0
	printf("%s\n", ch1);//一直找到\0才停止
	printf("%d\n", strlen(ch1));//无法确定因为\0是随机找的
	return 0;
}

%s是打印字符串,strlen是库函数,它用来求字符串的长度,上面代码中

    char ch1[] = { 'a', 'b', 'c', 'd', 'e', 'f' };
    printf("%s\n", ch1);
    printf("%d\n", strlen(ch1));

因为\0的位置随机的,所以打印出的内容是随机的,求出字符串的长度也是随机的。

转义字符举例:

int main()
{
	printf("%s\n", "c:\test\test.c");//\t是一个转义字符
	return 0;
}

打印出的结果是:

因为\t是一个转义字符,它表示键盘上的TAB按键。

转义字符:

再举一些例子:

int main()
{
	//printf("%c", 'a');
	//printf("%c", '\'');//打印出'
	//printf("%s\n", "\""); 
	//printf("%s\n", "c:\\test\\test.c");
	//printf("%c\n", '\065');//八进制数字065转换成十进制就是53--对应的是字符5
	//\ddd--ddd的8进制数字转换为10进制后的值,作为ASCII值所代表的字符
	printf("%c\n", '\x51');//16进制数字51转换为10进制是81--对应的字符是Q
	return 0;
}

上面例子中\065代表的是八进制数字,它打印时需要转换为对应的十进制数字,然后在找到十进制数字ASCII码值对应的字符,打印到屏幕上。\x51是十六进制数字,与八进制数字转换的原理是相同的。

选择语句

举例:

int main()
{
	int input = 0;
	printf("加入比特\n");
	printf("要好好敲代码吗(1/0)?");
	scanf("%d", &input);
	if (input == 1)
	{
		printf("拿好offer\n");
	}
	else
	{
		printf("麦红薯\n");
	}
	return 0;
}

这里用if--else语句来进行选择。

循环语句

循环表示要一直重复的做一件事情。

举例:

int main()
{
	int line = 0;
	printf("加入比特\n");
	while (line <= 20000)
	{
		printf("敲代码:%d\n",line);
		line++;
	}
	if (line > 20000)
	{
		printf("好offer\n");
	}
	return 0;
}

函数

我们前面在变量那举例一个简单的例子就是两个数的相加,其实我们可以把两个数字的相加写成一个函数,这样更加方便。

举例:


int Add(int x, int y)
{
	int z = x + y;
	return z;
}

int main()
{
	int num1 = 0;
	int num2 = 0;
	int sum = 0;
	scanf("%d%d", &num1, &num2);
	sum=Add(num1,num2); //传参
	printf("%d\n", sum);
	return 0;
}

Add就是一个相加的函数。

数组

数组是一组相同类型元素的集合。

举例:

int main()
{
	int arr[10] = {1,2,3,4,5,6,7,8,9,10};//数组--一组相同类型元素的集合
	//数组的下标是从0开始
	printf("%d\n", arr[5]);//下标访问数组元素
	int i = 0;
	while (i < 10)
	{
		printf("%d ", arr[i]);
		i++;
	}
	//char ch[5] = {'a','b','c'};
	return 0;
}

要注意数组的下标是从0开始的,当我们想要访问数组时,要通过下标来访问。

目前还没有完全写完初始C语言,并且初始C语言只是简单了解,后面会详细解释。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值