您现在的位置是:首页 >技术杂谈 >初始C语言(2)网站首页技术杂谈

初始C语言(2)

无敌GGBond 2024-10-25 00:01:07
简介初始C语言(2)

常量和变量
生活中的有些值是不变的(比如:圆周率,性别,身份证号码,血型等等),有些值是可变的(比如:年龄,体重,薪资)。不变的值,C语言中用常量的概念来表示,变得值C语言中用变量来表示。
1.1变量的命名
1只能用数字,字母(包括大小写)和下划线组成(_)。
2不能以数字开头。
3长度不超过63。
4变量名要区分大小写

A1_ //正确定义变量名
2b_//错误,因为不能以数字开头
//A1_和a1_不同,注意区分

1.2定义变量的方法
数据类型+变量名=赋值

int a=0;
int weight=60;
//创建a和weight两个变量

1.3变量的分类
全局变量
局部变量
简单理解就是在{}外的就是全局变量,在{}内的就是局部变量

#include<stdio.h>
int a=100 ; //全局变量
int main()
{
   {  
      int b=20;
      printf("%d
",b);//局部变量
   }
   printf("%d
",a);
  return 0;
  }
  

在这里插入图片描述
变量的使用
在介绍变量的使用之前,我先介绍两个函数的使用
printf用于函数输出 scanf用于函数输入 最重要的是scanf要用取地址&

printf("%d",100);
scanf("%d",&a);

在VS这种编译器里面会对scanf函数进行警告,VS会感觉scanf函数不安全,它会建议我们使用scanf_s来替换scanf,但是,scanf_s只是VS里面所提供的,当我们将代码转移到其他编译器里面的时候,将不能编译,所以,scanf_s只能在VS里面使用,无法体现代码的跨平台性,那我们要解决这个问题,只需在我们的代码的第一行,#define _CRT_SECURE_NO_WARNINGS 1 ,就可以解决scanf函数警告。
1.4变量的作用域和生命周期
作用域
作用域(scope)是程序设计概念,通常来说,一段程序代码中所用到的名字并不总是有效/可用
的 ,而限定这个名字的可用性的代码范围就是这个名字的作用域。

  1. 局部变量的作用域是变量所在的局部范围。
  2. 全局变量的作用域是整个工程。
    生命周期
    变量的生命周期指的是变量的创建到变量的销毁之间的一个时间段
  3. 局部变量的生命周期是:进入作用域生命周期开始,出作用域生命周期结束。
  4. 全局变量的生命周期是:整个程序的生命周期。

2 常量
在C语言中,常量可以分为以下几种
1字面常量'a' 2 3.14 这种直接输入的就是字面常量
2const修饰的常变量,虽然叫做常变量, 但是它的本质还是变量

int main()
{
	const int a = 2;
	int arr1[a] = { 0 };

	return 0;
}

在这里插入图片描述
我们可以看到VS的报错,因为arr1[]中必须是常量
被const修饰之后的变量不能修改,但是在本质上还是一个变量,并不能说加上const就是一个常量。

3#define定义的标识符常量
在这里插入图片描述
5枚举常量
枚举用enum关键字

enum color
{
   RED,
   GREEN,
   BLUE
};
int main()
{
   printf("%d
",RED);
   printf("%d
",BLUE);
   printf("%d
",GREEN);
   return 0;
}

在这里插入图片描述
2字符串
简单理解就是在双引号内的就是字符串
"hello"就是一个字符串 注:字符串的结束标志是一个 的转义字符。在计算字符串中不算做字符串长度
2.1字符
用单引号引起的单个字符
'a’就是单个字符
下面我们用代码来区分

#include<stdio.h>
#include<srring.h>
int main()
{
	char arr1[] = "abc";
	char arr2[] = {'a', 'b', 'c'};

	//printf("%s
", arr1);
	//printf("%s
", arr2);
	//strlen是一个库函数 - 求字符串长度的,统计的是字符串中之前的字符个数
	printf("%d
", strlen(arr1));
	printf("%d
", strlen(arr2));//随机值


	return 0;
}

strlen 需要包含<string.h>
在上面的char arr2[] = {‘a’, ‘b’, ‘c’};中因为没有作为结束标志所以输出的是一个随机值

在这里插入图片描述
如果我们在har arr2[] = {‘a’, ‘b’, ‘c’};中加入,变成har arr2[] = {‘a’, ‘b’, ‘c’,‘’};
在这里插入图片描述
3 转义字符 释义
? 在书写连续多个问号时使用,防止他们被解析成三字母词
’ 用于表示字符常量’
“ 用于表示一个字符串内部的双引号
用于表示一个反斜杠,防止它被解释为一个转义序列符。
a 警告字符,蜂鸣
 退格符
f 进纸符
换行
回车
水平制表符
v 垂直制表符
ddd ddd表示1~3个八进制的数字。 如: 130 X
xdd dd表示2个十六进制数字。 如: x30
在这里我选取两个最重要的来介绍

1 ddd表示后面跟上的是三位八进制数
在这里插入图片描述

因为八进制130转为十进制是88,对应的ASCLL是x
在这里插入图片描述
2xdd
在这里插入图片描述
同理我们可以看到x56转为16进制数是86
注:ASCII码值所表示的数的范围是有限的0~127,如果转化过后的值超过这个范围将不会打印出想要的结果
4 注释
注释有两种风格:
C语言风格的注释 /xxxxxx/
缺陷:不能嵌套注释
C++风格的注释 //xxxxxxxx
可以注释一行也可以注释多行
结语
以上就是今天内容,讲的都是表面,是为了让大家对c语言有一个了解,后面我会更深层次的讲解,谢谢大家的支持。

风语者!平时喜欢研究各种技术,目前在从事后端开发工作,热爱生活、热爱工作。