初始c语言


第一个c语言程序

#include<stido.h>
int mian()
{
printf("Helo,World!");
return 0;
}

一、数据类型

1. 数制

1.二进制
2.八进制
3.十六进制
4.数制的转换

%d:用于输出整型数(整型指本质为整型的数,如int、short、char等)

%u: 以无符号形式输出十进制数

%f: 用来输出浮点数(float),精度为6位小数,第七位四舍五入。

%o:以无符号八进制形式输出整数值

%x: 以无符号十六进制形式输出整数值

进制转换的例子

#include<stdio.h>
int main()
{
	unsigned int a;
	unsigned int b;
	unsigned int c;
	printf("请输入一个十进制数:");
	scanf("%u", &a);
	printf("请输入一个八进制数:");
	scanf("%o", &b);
	printf("请输入一个十六进制数:");
	scanf("%x", &c);
	printf("十进制数%u转换为八进制数%o,转换为十六进制数%x\n", a, b, c);
	printf("八进制数%o转换为十进制数%u,转换为十六进制数%x\n", b, a, c);
	printf("十六进制数%x转换为十进制数%u, 转换为八进制数%o\n", c, a, b);
	return 0;
}

2.整形数据

在这里插入图片描述

3.浮点数数据

在这里插入图片描述

在 C 语言中,sizeof() 是一个判断数据类型或者表达式长度的运算符。

下面用代码写出个数据类型的字节长度

int main()
{
	printf("char类型占%d字节\n", sizeof(char));//字符形
	printf("short int类型占%d字节\n", sizeof(short int));//短整形
	printf("int 类型占%d字节\n", sizeof(int));//整形
	printf("long int类型占%d字节\n", sizeof(long int));//长整型
	printf("unsigned short类型占%d字节\n", sizeof(unsigned short));//无符号短整型
	printf("unsigned int类型占%d字节\n", sizeof(unsigned int));//无符号整形
	printf("unsigned long类型占%d字节\n", sizeof(unsigned long));//无符号长整形
	printf("float类型占%d字节\n", sizeof(float));//单精度
	printf("double类型占%d字节\n", sizeof(double));//双精度
	printf("long double类型占%d字节\n", sizeof(long double));//长双精度
	return 0;
}

代码结果
在这里插入图片描述

二、变量和常量

生活的值有些是不变的(比如:圆周率,性别,身份证,血型以及一些被定义的数字等)
有些值会发生改变(比如:年龄,体重,身高等)
在c语言中不变的值通常用常量的概念来表示,变得值通常用变量来表示

1.定义变量的方法

//创建一个变量
//类型 变量名字 = 数值;
//类型 变量名字;//不推荐
int a,b,c;
char ch = 'w';
float f,g;
int weight =120;
int salary = 20000;//工资

2.变量的分类

  • 局部变量
    局部变量是{}内部的变量
  • 全局变量
    全局变量是{}外部的变量

当局部变量和全局变量的变量名字相同时,局部变量优先表示

#include<stdio.h>
int a = 100;
int main()
{
	int b= 10;
	printf("a=%d\n", a);
	printf("b=%d\n", b);
	return 0;
}

代码结果>
在这里插入图片描述

#include<stdio.h>
int a = 100;
int main()
{
	int a = 20;
	int b= 10;
	printf("a=%d\n", a);
	printf("b=%d\n", b);
	return 0;
}

代码结果>
在这里插入图片描述

由这两个代码可以表示局部变量优先于全局变量

3. 变量的作用域和生命周期

  • 作用域
    通常来说,一段程序代码中所用到的名字并不总是有效/可用的而限定这个名字的可用性的代码范围就是这个名字的作用域
    局部变量的作用域是变量所在的局部范围。
    全局变量的作用域是整个工程。
    2.生命周期
    变量的生命周期指的是变量的创建到变量的销毁之间的一个时间段
    局部变量的生命周期是:进入作用域生命周期开始,出作用域生命周期结束。
    全局变量的生命周期是:整个程序的生命周期。

4.常量

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

  • 字面常量
  • const修饰的常变量
int main()
{
	int num = 10;
	num = 20;
	printf("%d", num);
}

结果输出的是20

int main()
{
	const int num = 10;
	num = 20;
	printf("%d", num);
}

这个代码中的num是用const修饰了变成了常变量具有了常属性(不能被改变的属性)
所以对下面num再次赋值就不能实现了
代码最终结果是10

注意:常变量不能当常量使用
  • #define 定义的标识符常量
#define MAX 1000
#include<stdio.h>
int main()
{
int n = MAX;
printf("%d",n);
return 0;
}

*结果为10000

注意:被define定义的标识符常量是不能更改的
  • 枚举常量
    一般可以一一列举的常量
    在这里插入图片描述
    结果
    在这里插入图片描述
    在main中枚举常量是不能改变的

三 字符串+转义字符+注释

1.字符串

这种由双引号(Double Quote)引起来的一串字符称为字符串字面值(String Literal),或者简称字符串。
注:字符串的结束标志是一个\0 的转义字符。在计算字符串长度的时候\0 是结束标志,不算作字符串内容。

字符串在结尾的位置隐藏了一个\0的字符。而\0是字符串的结束标志>

示例如下:
在这里插入图片描述

没有\0时候会出现什么结果
在这里插入图片描述

结果如下
在这里插入图片描述
字符串中如果没有\0就没有结束标志在计算字符串长度是会出现随机值
\0不算字符串的长度

解决办法是将代码写为

char arr2[]={'a','b','c','\0'};

写成这样结果就不会出错了

2.转义字符

在你计算字符长度时要注意字符被转义字符转义成别的含义

在这里插入图片描述
练习

int main()
{
printf("%d\n", strlen("c:\test\628\test.c"));
return 0}

结果为14
其中\t是一个字符\62是一个字符

3.注释

  1. 代码中有不需要的代码可以直接删除,也可以注释掉
  2. 代码中有些代码比较难懂,可以加一下注释文字
    在Visual Studio 2022 版本中用 Ctrl和k+Ctrl和c注释
  • 4
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值