scanf是C语言提供的
scanf_s是非标准的C语言代码,是由VS编译器提供的,不具有可移植性/跨平台性
#define _CRT_SECURE_NO_WARNINGS 1
Notepad++进行文件的修改
常量
直观上写出的叫字面常量:3;100;3.14
const 常属性
const修饰的常变量
int main(){const int num = 4;printf("%d\n", num);num = 8;//报错,const将num设置为常量后,无法再对num进行赋值printf("%d\n", num);return 0;}
int main(){int arr[10] = { 0 };//创建arr的数组,由十个元素,都是0,类型为int整形return 0;}
int main(){const int n = 10;//n是变量,但是又有常属性,所以我们说n是常变量int arr[10] = { 0 };//创建arr的数组,由十个元素,都是0,类型为int整形return 0;}
//#define 定义的标识符常量
#define MAX 10int main(){int arr[MAX] = { 0 };printf("%d\n", MAX);return 0;}
枚举常量
//枚举关键 - enum
enum Sex{male,female,secret};int main(){enum Sex s = female;printf("%d\n", male);//有自己的值 0printf("%d\n", female);//1printf("%d\n", secret);//2return 0;}
枚举常量不可更改 但是上面代码中s变量是可更改的
字符串+转义字符+注释
字符串
"abcd"
"hello"
""//空字符串
int main(){char arr1[] = "abc";//数组printf("%s\n", arr1);return 0;}
int main(){char arr1[] = "abc";//数组char arr2[] = { 'a','b','c' ,0};//数组printf("%s\n", arr1);printf("%s\n", arr2);return 0;}
输出成功
“abc” -- ‘a’, ’b’ ,’c’ ‘\0’ ‘\0’ -- 是字符串的结束标志,也叫转义字符,不算做字符串的内容
a - 97
A - 65
…
ASCII编码/码值
#include<stdio.h>#include<string.h>int main(){char arr1[] = "abc";char arr2[] = { 'a', 'b', 'c'};printf("%d\n", strlen(arr1));//strlen - string length - 计算字符串长度的printf("%d\n", strlen(arr2));//strlen - string length - 计算字符串长度的return 0;}
转义字符 - 转变原来的意思
\n- 换行
\s- 水平制表符
printf(“%d\n”, ‘\’’);//打印出\return 0;int main(){printf("%d\n", strlen("d:\studycode\test9_2\study_9_2.cpp"));return 0;}
\32 -- 32是2个8进制数字,是一个字符
32作为8进制代表的那个十进制数字,作为ASCII码值,对应的字符
\ddd -- ddd表示1~3个8进制数字 \130 x
\xdd -- dd表示2个16进制数字 \x30 0
注释
/* …… */ 不可嵌套注释
建议使用//
代码不需要的部分直接注释
比较难懂的部分进行解释
循环语句
while
int main(){int line = 0;printf("开始学习\n");while (line<10){printf("敲一行代码\n");line++;}printf("得到好offer\n");return 0;}
while循环语句的特点:
while(条件,如n<20)
{
……(需要循环的内容)
}
调用函数
int add(int x, int y){int z = x + y;return z;}int main(){int sum = 0;int num1 = 1;int num2 = 2;int a = 10;int b = 20;sum = add(num1, num2);printf("%d\n", sum);sum = add(a, b);printf("%d\n", sum);return 0;}
Add是自定义函数,main是主函数,主函数中包含的库函数不需要额外调用,如果自己需要添加函数,在设定数据类型,然后建立公式,然后才能在主函数中调用
for
do … while
这两个函数后续再进行学习,先学习while,并认识一下for和do…while
数组
int arr[10] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };//在arr中放十个整数数字//对应的存放位置: 0 1 2 3 4 5 6 7 8 9printf("%d\n", arr[4]);//打出的数字为5
打印出1-10的所有数字
int main(){int arr[10] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };//在arr中放十个整数数字//对应的存放位置: 0 1 2 3 4 5 6 7 8 9//printf("%d\n", arr[4]);//打出的数字为5int i = 0;while (i<10){printf("%d", arr[i]);i++;}return 0;}
操作符
--先简单了解,后续再做深入学习
算数操作符
+ - * / % 5/2=2 5%2=1(取模,得到余数)
移位操作符
移(2进制)位操作符
<< -- 左移 >> -- 右移
左移两位后,b的值从0000001变更为0000100,a不变
位操作符
(2进制)位操作
& -- 按位与
| -- 按位或
^ -- 按位异或
int main(){int a = 3;int b = 5;int c = a & b;//a -- 011//b -- 101//c -- 001 进行对位与操作,0为假,1为真,01/10为假,11为真printf("%d\n", c);return 0;}
int main(){int a = 3;int b = 5;int c = a | b;//011//101//111 01/10都为11printf("%d\n", c);return 0;}
int main(){int a = 3;int b = 5;int c = a ^ b;//对应的二进制位相同,则为0,相异,则为1//011//101//110printf("%d\n", c);return 0;}
赋值操作符
赋值 = 判断相等 ==
int main(){int a = 0;a = a + 10;a += 10;return 0;}
+= -= <<= &= 复合赋值符
单目操作符
! 逻辑反操作 - 负值 + 正值 & 取地址 sizeof 操作数的类型长度
~ 对一个数的二进制按位取反 -- 前置、后置-- ++ 前置、后置++
* 间接访问操作符