【C】940/bit1-1初识C语言

文章介绍了C语言的基本结构,从main函数开始,详细讲解了基本数据类型如int、float等的使用,以及变量的声明、分类、作用域和生命周期。同时,提到了常量的概念,包括不同类型的常量和字符串的处理。还讨论了转义字符和注释在代码中的作用。
摘要由CSDN通过智能技术生成

【参考课程:B站  BV1cq4y1U7sg  BV1Vm4y1r7jY】

目录

1.main主函数

2.基本数据类型

3.变量与常量

3.1变量

变量分类

变量求和

变量的作用域和生命周期

3.2常量

常量的类型

字符串

转义字符

注释


1.main主函数

项目从main函数第一行开始运行。

每个C语言程序有且仅有一个main函数。

int main()                 //定义主函数

{                          //{}内为函数体

	return 0;              //执行完函数后返回函数值0
}

每个语句后都有 ; 表示语句结束。

2.基本数据类型

包括整形类型浮点类型

int main()
{  
//定义空间储存不同的数据类型
	//整形类型
	int a=1;          //基本整形
	short int b=1;      //短整形,可省略int
	long int c=1;       //长整形,可省略int
	long long int d=1;  //双长整形,可省略int
	char e=1;           //字符型

	//浮点类型
	float f = 1.1;      //单精度浮点型
	double g = 1.2;     //双精度浮点型

	return 0;
}

不同类型所占空间大小不同。

int main()
{
	printf("%lld\n", sizeof(int));         //4bytes
	printf("%lld\n", sizeof(short));       //2bytes
	printf("%lld\n", sizeof(long));        //4bytes.规定sizeof(long)>=sizeof(int)
	printf("%lld\n", sizeof(long long));   //8bytes
	printf("%lld\n", sizeof(char));        //1bytes

	printf("%lld\n", sizeof(float));       //4bytes
	printf("%lld\n", sizeof(double));      //8bytes

	return 0;
}

占位符:%d-整型   %f-浮点型   %lf-双精度浮点型

占位符%d在格式化输入输出中代表int(4bytes),%ld代表long int(>=4bytes), %lld代表long long int (8bytes);

sizeof返回的是一个64位 (8bytes)的无符号整型,所以占位符应该是%lld。

*sizeof不是函数,而是单目运算符。其运算符的含义是:求出对象在计算机内存中所占用的字节数。

 *1byte字节=8bit比特位,1kb=1024byte,1mb=1024kb,1gb=1024mb,1tb=1024gb......

3.变量与常量

变量:可变的量

常量:不可变的量

3.1变量

#include<stdio.h>
int main()
{
	//变量类型 变量名=赋值
	int numb = 0;           //创建变量,建议在此处即将变量赋值,可暂赋为0

	numb = numb + 1;        //变量可变
	printf("%d\n", numb);   //会输出numb最新值1
	return 0;
}

变量分类

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

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

当局部变量与全局变量名字冲突时,局部优先

变量求和

#define _CRT_SECURE_NO_WARNINGS 1   //解决scanf函数在VS中的报错问题
#include<stdio.h>

int main()
{
	//变量类型 变量名=赋值
	int a = 0;
	int b = 0;
	scanf("%d %d", &a, &b);   //输入函数scanf
	int sum = a + b;
	printf("%d", sum);
	return 0;
}

变量的作用域和生命周期

作用域scope:限定代码中名字的可用性的范围。 //代码在哪里可用,哪里就是它的作用域。

局部变量作用域:局部变量所在的局部范围/所在的{}内

int 全局 = 0;
printf("q1:%d\n", 全局);         //q1报错,执行型代码必须放在{}内
int main()
{
	printf("j1:%d\n",局部a);    //j1正常
	int 局部a = 1;
	printf("q2:%d\n", 全局);     //q2正常
	printf("j2:%d\n", 局部a);    //j2正常
	{
		int 局部b = 2;
		printf("q3:%d\n", 全局); //q3正常
		printf("j3:%d\n", 局部a);//j3正常
		printf("j4:%d\n", 局部b);//j4正常
	}
	printf("j5:%d\n", 局部b);    //j5报错,超出‘局部b’作用域
	printf("q4:%d\n", 全局);     //q4正常
	return 0;
}

全局变量作用域:整个工程。同一工程下跨文件使用变量需要在新文件中声明变量。

//在工程A下的文件1中定义变量a:
int a=2023

//需要在工程A下的文件2中使用a
//则在文件2中声明变量a
extern int a;
//声明后a在文件2也可用
int main()
{
    printf("%d",a);
    return 0;
}

变量的生命周期:变量从创建到销毁之间的时间段。

局部变量的生命周期:进入局部范围生命开始→出局部范围生命结束。

全局变量的生命周期=main函数的生命周期=一个程序的生命周期

3.2常量

常量的类型

#include<stdio.h>

int main() 
{
//1.字面常量
	3.14;
	10;
	'a';        //单个字符用''引
	"abcdef";   //字符串用""引

//2.const修饰的常变量
	const int num = 10;  //const修饰后num为常变量,不能再改变赋值
	//常变量:具常属性(不能被改变的属性)的变量,本质还是变量。

//3.#define定义的标识符常量
#define MAX 2023

//4.枚举常量-可以一一列举的常量
	enum SEX      //SEX为创建的枚举类型
	{
		//在{}内枚举变量SEX的未来可能取值
		//{}内列出的为枚举常量
		MALE,   //printf("%d",MALE)输出结果默认为0//MALE=3,若赋初值为3
		FEMALE, //~为0+1=1//~则为3+1
		SECREAT //~为1+1=2//~3+2
	};
	//在枚举类型SEX下创建枚举变量s
	enum SEX s = MALE;
	//变量s仅能在{}内列出的枚举常量中取值

	return 0;
}

字符串

字符串占位符  %s

#include<string.h>      //使用函数strlen()需要引用该头文件
#include<stdio.h>
int main()
{
//【字符串】--用""括起的一串字符
	//字符数组--储存字符串
	char arr1[] = "abc"; 
	//字符串的结尾都有\0--为字符串的结束标志,可隐藏
	//单个字符无隐含结束标志,需手动添加
	char arr2[] = { 'a','b','c'};
	char arr3[] = {'a','b','c','\0'};

	printf("%s\n", arr1);   //输出 abc
	printf("%s\n", arr2);   //输出 abc+乱码
	printf("%s\n", arr3);   //输出 abc

//函数strlen()求字符串长度//string length
	int len = strlen("abc");
	printf("%d\n", len);            //输出 3
	//字符串结束标志'\0'不计入字符串长度
	printf("%d\n", strlen(arr1));   //输出 3
	printf("%d\n", strlen(arr2));   //输出 随机数
	printf("%d\n", strlen(arr3));   //输出 3

	return 0;
}
\0 为结束标志(字符串结尾隐含);arr2由单个字符组成,无隐藏结束标志,所以在打印完字符后仍继续打印,打印出了乱码

转义字符

字符有其他含义,无法被直接打印出来

在字符前加 \ 以打印出其原义

C语言转义字符

\dddddd表示1~3个八进制的数字。如:\130X
\xdddd表示2个十六进制数字。如:\x30 0

 ASCII_百度百科

*进制转换:

n进制数字 dcba 转换为10进制=d*n^3+c*n^2+b*n^1+a*n^0

例题: 输出什么?答案:输出 14

解析:\328由于8>=8超出八进制位所以应该输出两个字符:\32  8

即:c  :  \t  e  s  t  \32  8  \t  e  s  t  .  c


注释
//C++注释风格

/*C语言注释风格*/    //不建议用--不支持嵌套注释

*注释--除用于解释代码外还可用于屏蔽代码(注释内容不会运行)

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值