学习内容:
1.标题搭建C语言开发环境(安装VS2022)
标题解决vs提示scanf()函数不安全编译失败
方式一:.c文件顶部加一行代码:#define _CRT_SECURE_NO_WARNINGS 1
方式二:修改 newc++file.cpp文件
newc++file.cpp文件默认路径:C:\Program Files\Microsoft Visual Studio\2022\Enterprise\Common7\IDE\VC\VCProjectItems
2.数据类型
2.1C语言数据类型
数据类型 | 长度 | 说明 |
---|---|---|
char | 1 | 字符数据类型 |
short | 2 | 短整型 |
int | 4 | 整型 |
long | 4 /8 | 长整型 |
long long | 8 | 更长的整型 |
float | 4 | 浮点型 |
docuble | 8 | 双精度浮点型 |
//C语言没有字符串类型?
printf("char %d\n", sizeof(char));
printf("short %d\n", sizeof(short));
printf("int %d\n", sizeof(int));
printf("long %d\n", sizeof(long));
printf("long long %d\n", sizeof(long long));
printf("float %d\n", sizeof(float));
printf("double %d\n", sizeof(double));
数据类型长度(单位:byte)
int age = 20;//向内存申请4个字节=32bit,用来存放20
float weight = 95.6f;//向内存申请4个字节,存放小数
2.2计算机中的单位
单位 | 名称 | 说明 |
---|---|---|
bit | 比特位 | |
byte | 字节 | 1byte=8bit |
kb | 千字节 | 1kb=1024byte |
mb | 兆 | 1mb=1024kb |
gb | 吉字节 | 1gb=1024mb |
tb | 太字节 | 1tb=1024gb |
pb | 拍字节 | 1pb=1024tb |
2.3打印输出类型
//%d-打印整型 100
//%c-打印字符 a
//%s-打印字符串 helloworld
//%f-打印浮点数字-打小数 1.2
//%p-以地址的形式打印
//%x-打印16进制整数
//%o-打印8进制整数
//%e-以指数形式输出实数
int age = 20;
printf("%d", age);//%d --打印整型十进制数据20
3.变量、常量
3.1定义变量的方法
int age = 35;
float weight = 45.6f;
char ch = 'W';
3.2变量的分类
- 局部变量
- 全局变量
#include<stdio.h>
int global = 2022;//全局变量 定义在代码块({})之外的变量
int main()
{
int local = 2021;//局部变量 定义在代码块内部的变量
//局部变量与全局变量名称相同时 局部变量优先
int global = 2020;
printf("global=%d\n", global);
return 0;
}
结果如下
global=2020
3.3变量的使用
#include <stdio.h>
int main()
{
int num1 = 0, num2 = 0, sum = 0;
printf("请输入2个数字,用空格分开");
//输入数据-使用scanf()函数
//&:取地址符
scanf("%d %d", &num1, &num2);//控制台 输入2个数字,用空格分开
printf("num1=%d num2=%d\n",num1,num2);
sum = num1 + num2;
printf("sum=%d\n", sum);
return 0;
}
结果如下
3.4变量的作用于和生命周期
作用域(scope):程序设计概念,通常来说,一般程序代码中所用到的名字并不总是有效/可用的,而限定这个名字的可用性的代码范围就是这个名字的作用域。
1.局部变量的作用域是变量所在的局部范围
2.全局变量的作用域是整个工程(使用时需要使用extern进行声明)。
生命周期: 变量的生命周期指的是变量的创建到变量的销毁之间的一个时间
1.局部变量的生命周期:进入作用域生命周期开始,出作用域生命周期结束
2.全局变量的生命周期:整个程序的生命周期
3.5常量
C语言中的常量和变量的定义形式有所差异。
C语言中的常量分为一下几种:
- 字面常量
- const 修饰的常变量
- #define 定义的标识符常量
- 枚举常量
#include<stdio.h>
//3.#define 定义的标识符常量
#define MAX 10//
//4.枚举常量
//枚举:一一列举
//三原色:红、黄、蓝
enum Sex
{
MALE,
FEMALE,
SECRET
};
int main()
{
//const - 常属性
const int n = 5;//n是变量,但是又有常属性,所以我们说n是常变量
//1.字面常量
3;
100;
//2.const 修饰的常变量
const int num = 1;//变量不可修改
//3.#define 定义的标识符常量
printf("MAX=%d\n", MAX);
//数组长度n必须是常量
int arr[MAX] = { 0 };
//4.枚举常量
enum Sex s = FEMALE;
printf("s=%d\n", s);
printf("MALE=%d\n",MALE);
printf("FEMALE=%d\n", FEMALE);
printf("SECRET=%d\n", SECRET);
return 0;
}
示例结果
4.字符串+转义字符+注释
4.1字符串
"Hello world!";
由双引号(Double Quote)引起来的一串字符称为字符串面值(String Literal),或者简称字符串。
注:字符串的结束标志是一个 \0 的转义字符,在计算字符串长度的时候 \0 是结束标志,不算做字符串内容。
#include<stdio.h>
#include<string.h>
int main()
{
//ASCII 编码
//A=65 a=97
char arr1[] = "abc";//abc\0
printf("arr1=%s\n", arr1);
//strlen()计算字符串长度,结束字符不参与计算
printf("arr1的length为:%d\n", strlen(arr1));
//sizeof()计算字符串大小
printf("arr1的size为:%d\n\n", sizeof(arr1));
char arr2[] = { 'a','b','c' };//abc....随机
printf("arr2=%s\n", arr2);
printf("arr2的length为:%d\n", strlen(arr2));
printf("arr2的size为:%d\n\n", sizeof(arr2));
//添加结束字符: \0 或 0
char arr3[] = { 'a','b','c','\0' };
printf("arr3=%s\n", arr3);
printf("arr3的length为:%d\n", strlen(arr3));
printf("arr3的size为:%d\n\n", sizeof(arr3));
char arr4[] = { 'a','b','c',0 };
printf("arr4=%s\n", arr4);
printf("arr4的length为:%d\n", strlen(arr4));
printf("arr4的size为:%d\n\n", sizeof(arr4));
char arr5[] = { "abc" };
printf("arr5=%s\n", arr5);
printf("arr5的length为:%d\n", strlen(arr5));
printf("arr5的size为:%d\n\n", sizeof(arr5));
//定义数组大小
char arr6[4] = { "abc" };
printf("arr6=%s\n", arr6);
printf("arr6的length为:%d\n", strlen(arr6));
printf("arr6的size为:%d\n\n", sizeof(arr6));
return 0;
}
示例结果
4.2转义字符
#include<stdio.h>
int main()
{
//1.换行符:\n
printf("1.abcn");
printf("\n");
printf("1.abc\n");
printf("\n");
//2.水平制表符:\t
printf("2.a\tb\tc\n");
printf("\n");
//3.转义 8进制 字符
// \32:32作为8进制代表的那个十进制数字,作为ASCII码值,对应的字符
// 32->10进制 26->作为ASCII码值代表的字符
printf("3.%c\n", '\32');
printf("3.c:\test\32\test.c\n");
printf("3.c:\\test\\32\\test.c\n");
printf("\n");
//4.\xdd dd表示2个十六进制的数字。如:\x30 ->0
printf("4.\x61\n");
printf("\n");
//5.\ddd ddd表示1~3八进制的数字,如:\130 ->X
printf("5.\132\n");
return 0;
}
示例结果
4.3注释
-
C语言风格:/XXXXXXXXXXXXX/
缺陷:不能嵌套注释
-
C++风格://XXXXXXXXXX
可以注释一行也可以注释多行