注:本文中涉及的程序忽略了引用头文件代码,如需运行请加代码#include <stdio.h>
一、数据类型、数据类型占用空间、字节、位等概念
1、数据类型
整型:int、short、long、long long
浮点型:float、double
字符型:char
2、数据类型占用空间
int main()
{
printf("Size of char: %zu bytes\n", sizeof(char));
printf("Size of int: %zu bytes\n", sizeof(int));
printf("Size of short: %zu bytes\n", sizeof(short));
printf("Size of long: %zu bytes\n", sizeof(long));
printf("Size of long long: %zu bytes\n", sizeof(long long));
printf("Size of float: %zu bytes\n", sizeof(float));
printf("Size of double: %zu bytes\n", sizeof(double));
printf("Size of pointer: %zu bytes\n", sizeof(void*));//指针
//打印各种数据结构类型占用字节(byte) 1 byte = 8 bit 1 kb = 1024 bytes
// c语言中没有字符串类型
return 0;
}
输出结果
Size of char: 1 bytes
Size of int: 4 bytes
Size of short: 2 bytes
Size of long: 4 bytes
Size of long long: 8 bytes
Size of float: 4 bytes
Size of double: 8 bytes
Size of pointer: 8 bytes 使用的电脑为64位
注:指针变量存放的为地址,其占用空间为4或者8字节
32位电脑占用4个字节,64位电脑占用8个字节
3、字节、位
一个字节(Byte)通常由8个二进制位(Bit)组成,每个位只能是0或1。
字节是计算机存储和处理数据的基本单位,它可以存储一个ASCII字符、一个整数、一个浮点数等数据。
位(Bit)是计算机存储和处理数据的最小单位,它只能是0或1。
1 Byte = 8 Bits
1 KB = 1024 Bytes
1 MB = 1024 KB
1 GB = 1024 MB
二、局部变量、全局变量
// int a = 10;//全局变量
// int main()
// {
// int b = 20;//局部变量
// int a = 100;
// printf("%d\n",a); //局部变量与全局变量冲突时,优先使用局部变量(就近原则)
// return 0;
// }
// 不建议将全局和局部变量写成一样
输出结果为a = 100
例:实现输入两个整型并求和
int main()
{
int a = 0;//变量初始化,否则为生成的随机数
int b = 0;
scanf("%d %d",&a,&b);//输入两个数,放入a与b的地址中
int sum_num = a + b;
printf("result is %d",sum_num);
return 0;
}
tip:使用变量时建议对变量进行初始化操作,即赋值为0
三、常量
1、常量的分类
1、字面常量 30、3.14、'a'字符、 'abc'字符串
2、const修饰的常变量
int a = 10;(a可以改变)
const int a = 10;(a不可改变,本质是变量,但不能被修改,有常量的属性)
3、define定义的标识符常量
4、枚举常量
2、定义标识符常量#define
#define MAX 100//define定义的标识符常量
#define ST "ABCDEFG"
int main()
{
printf("%d\n",MAX);
int a = MAX;
printf("%d\n",a);
printf("%s\n",ST);//%d 整形 %s 字符串
return 0;
}
输出结果:
100
100
ABCDEFG
3、枚举常量
enum Color
{
RED,//默认枚举常量第一个赋值为0
GREN,//1
BLUE//2
//也可以赋值RED = 1,则顺延, GREN = 2,BLUE = 3
};
int main()
{
printf("RED=%d\n",RED);
printf("GREN=%d\n",GREN);
printf("BLUE=%d\n",BLUE);
return 0;
}
输出结果
RED=0
GREN=1
BLUE=2
四、转义字符
1、常用转义字符
转义字符必须以反斜杠 \
开始。如果要表示反斜杠字符本身,需要使用 \\
转义字符占用一个字节
\? | 防止出现3字母词 |
\’ | 用于表示字符’ |
\“ | 用于表示字符“ |
\\ | 用于表示斜杠,一个斜杠时会被解释为转义序列 |
\a | 警告字符,电脑会发出蜂鸣 |
\b | 退格符,相当于删除一个字符 |
\n | 换行符 |
\r | 回车符 |
\t | 水平制表符,与tab效果相当 |
\v | 垂直制表符,与换行类似 |
\ddd | 表示1~3个八进制数,如\130 |
\xdd | 表示1~2个十六进制数,如\x1a |
2、转义字符 \0 的应用
int main()
{
char arr1[] = "abcdef";//字符串内存 a b c d e f \0打印结束标志
char arr2[] = {'a','b','c','d','e','f'}; //字符内存 a b c d f 没有\0结束标志
int len1 = strlen(arr1);//字符串长度函数
int len2 = strlen(arr2);
printf("%d\n",len1);
printf("%d\n",len2);//没有结束标志导致strlen函数直到找到\0位结束,因此结果不确定
return 0;
}
输出结果:
6
12(随机,不一定为12)
3、打印 ' 字符
int main()
{
printf("%c",'\'');//打印'这个字符,加\转义
return 0;
}
五、注释
1、C语言注释方式
/* */ 嵌套注释会出现问题
2、C++语言注释方式
// 可多行可单行