const - 常属性
int main() {
//const - 常属性
//const修饰变量,则变量不可变
const int n = 10;//n是变量,但是又有常属性,所以我们说n是常变量
int arr[n] = { 0 };//数组定义长度只能是常量值
const修饰的常变量
//const int num = 4;
//printf("%d\n", num);
num = 8;
//printf("%d\n", num);
//3;//字面常量
return 0;
}
define定义的标识符常量
//#define定义的标识符常量
#define MAX 10
int main() {
int arr[MAX] = { 0 };
printf("%d\n", MAX);
return 0;
}
enum - 枚举常量
//枚举常量
//枚举 - 一一列举
//
//性别:男/女
//三原色:红、黄、蓝
//星期:1、2、3、4、5、6、7
//枚举关键字 - enum
enum color{red,yello,blue};
int main() {
enum color color = blue;
return 0;
}
enum sex{ male,
female,
secret
};
//male,female,secret - 枚举常量
int main() {
//enum sex s = female;
printf("%d\n", male);//0
printf("%d\n", female);//1
printf("%d\n", secret);//2
return 0;
}
scanf - 函数用法
int main() {
int num1 = 0;
int num2 = 0;
int sum = 0;
//scanf是C语言提供的
//scanf_s不是标准c语言提供的,是vs编译器提供的,只能在vs编译器下运行
//若使用scanf则代码不具有跨平台性/可移值性
//strcpy strlen strcat scanf...标准C语言提供的函数库,在传统意义上来说是不安全的
//#define _CRT_SECURE_NO_WARNINGS 加在源文件的头一行,让编译器不在警告
scanf("%d%d", &num1, &num2);
sum = num1 + num2;
printf("sum = %d\n", sum);
return 0;
}
字符串类型
int main() {
//数据在计算机伤存储的时候,存的是2进制
//#av$
//a - 97
//A - 65
//ASCII编码
//ASCII 码值
char arr1[] = "abc";//以字符串存入数字,在内存中存入(abc0)
//"abc" -- 'a' 'b' 'c' '\0' -- '\0'字符串的结束标志
char arr2[] = { 'a', 'b', 'c' ,'\0'};
//'\0' - 0
// 'a' - 97
//'a' 'b' 'c'
printf("%s\n", arr1);
printf("%s\n", arr2);//abc烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫泰,D<?
return 0;
}
strlen函数用法
int main() {
char arr1[] = "abc";
//char arr2[] = { 'a','b','c' };
char arr2[] = { 'a','b','c' ,'\0'};
printf("%d\n", strlen(arr1));//strlen - string lenth - 计算字符串长度的
printf("%d\n", strlen(arr2));//42
//arr1 a b c \0
//arr2 a b c 没有终止符号\0 往后随机直到出现\0
return 0;
}
转义字符
//转变原来的意思
int main() {
printf("%c\n", '\x61');
//61 -> 97 -> a
//ASCII码 0 -- 48 9 -- 57
//printf("%d\n", strlen("c:\test\32\test.c"));//stelen - 计算字符串长度
//\32 -- 32是2个8进制数字
//32作为8进制代表的那个十进制数字,作为ASCII码值,对应的字符
//32 --> 10进制 26 -> 作为ASCII码值代表的字符 - 向右的箭头
return 0;
}
int main() {
//printf("c:\test\32\test.c\n");
//printf("c:\\test\\32\\test.c\n");
printf("%c\n", '\'');
printf("%s\n", "\"");
//\t - 水平制表符 相当于tab键的效果
return 0;
}
int main() {
printf("abc\n");//\n将字符串n的意思转变为换行
return 0;
}
选择语句
int main() {
int input = 0;
printf("好好学习吗?(1/0)>:");
scanf("%d", &input);//1/0
if (input == 1)
printf("好offer\n");
else
printf("种地");
return 0;
}
循环结构
int main() {
int line = 0;
printf("好好学习\n");
while (line < 20000) {
printf("敲一行代码:%d\n",line);
line++;
}
if(line >= 20000)
printf("好offer\n");
return 0;
}
函数
int main() {
int num1 = 0;
int num2 = 0;
int add = 0;
printf("请输入第一个值:");
scanf("%d", &num1);
printf("请输入第二个值:");
scanf("%d", &num2);
//scanf("%d%d",&num1, &num2);
add = sum(num1, num2);
printf("和为:%d\n", add);
return 0;
}
int sum(int a, int b) {
int add = 0;
add = a + b;
return add;
}
数组
int main() {
int arr[10] = { 1,2,3,4,5,6,7,8,9 ,10};//定义一个存放10个整数数字的数组
//在内存中的形式
//arr: 1 2 3 4 5 6 7 8 9 10
//下标:0 1 2 3 4 5 6 7 8 9
//下标默认是从0开始的
//printf("%d\n", arr[4]);//下标的方式访问元素
for (int i = 0; i < sizeof(arr) / sizeof(arr[0]); i++) {
printf("%d\n", arr[i]);
}
//char ch[20];
//float arr2[5];
return 0;
}
位移操作符
int main() {
//移位操作符
//<< 左移
//>> 右移
int a = 1;
//整型1占4个字节 - 32bit位
//00000000000000000000000000000001
int b = a << 1;
printf("%d\n", b);
//0|00000000000000000000000000000010 - 2 -- 左移一位后补零
b = a << 2;
//00|00000000000000000000000000000100 - 4
printf("%d\n", a);
return 0;
}
int main() {
//(2进制)位操作
//二进制:1111 转换10进制
//1 1 1 1
//1*2^3+1*2^2+1*2^1+1*2^0
//8 +4 +2 +1
//& 按位与(一个为0则0)
//| 按位或(一个为1则1)
//^ 按位异或(对应的二进制位相同,则为0。对应的二进制位相异,则为1)
int a = 3;
int b = 5;
int c = a & b;
//011
//101
//001 - 1
c = a | b;
//011
//101
//111 - 7
c = a ^ b;
//011
//101
//110 - 6
printf("%d\n", c);
return 0;
}
int main() {
int arr[10] = { 0 };//10个整型元素的数组
//10 * sizeof(int) = 40
//printf("%d\n", sizeof(arr));
//计算数组的元素个数
// 数组总大小/每个元素的大小
// sizeof(arr) / sizeof(arr[0])
//int a = 10;
sizeof计算的是变量类型所占空间的大小,单位是字节
//printf("%d\n", sizeof(a));//4
//printf("%d\n", sizeof(int));
return 0;
}