scanf函数的简单使用
#include<stdio.h>
int main
{
int num1=0;
int num2=0;
int num=0;
scanf("%d%d",&num1,&num2);
sum=num1 + num2;
printf("sum=%d\n",sum);
return 0;
}
#include<stdio.h>
//弄清楚二进制 八进制 十六进制 二进制转十进制 十转二
//关于全局变量和局部变量的理解 你可以抽象出来 假设我们有一个村子 一个乡镇 一个叫全局变量镇 一个叫局部变量村
//全局变量镇里面有一个局部变量村 都有个叫x的人 当你走进局部变量村之前 你打听叫x的人 那肯定就是打听到全局变量镇的叫x的人
//当你走进局部变量村之后 你再去打听那个叫x的人 你打听到的就是村里面那个叫x的人
int x = 1;//全局变量 此时全局变量镇有个叫x的人
int main()
{//这里开始走进一个叫main的局部变量村
//此时全局变量镇有个叫x的人 但是村里这个叫x的人还没出生
x = x + 2;//全局变量在做运算 因为在这行之前 并没有创建x的局部变量 所以此时全局变量x变成了3
int x = 2;//此时村里面这个叫x的人就出生了 创建局部变量 x= 2 但是此时的全局变量x还是3 并不会发生改变 局部变量x和全局变量x不是一个东西
x = x + 2;//局部变量优先原则 在同时存在局部变量和全局变量时 优先选择局部变量 所以此时x = 2+2局部变量x变成了4
printf("大括号之前的:%d\n", x);//这里输出的是什么
//下面这部分直接用大括号{}框柱的就也可以看做一个main村中一个匿名的学校
{
int x = 5;//这个是学校中有个叫x的人
x = x + 1;
printf("大括号内的:%d\n", x);
}
printf("大括号之后的:%d\n", x);//这里输出的是什么
/*关于float和int类型的除法问题 */
float f = 2.0f;
printf("按%%d格式输出:%d\n", f);
printf("按%%f格式输出:%f\n", f);
printf("1/2 = %d\n", 1 / 2);
printf("1/2.0 = %f\n", 1 / 2.0);
printf("1.0/2 = %f\n", 1.0 / 2);
printf("1.0/2.0 = %d\n", 1.0 / 2.0);
/*第二集*/
//第二集从4.47开始
char arr[3] = "abc";//可以吗 如果不可以为什么
printf("%s", arr);
int a = 99;
char b = 'c';
printf("按%%c格式输出:%c\n", a);//这个结果是什么? 为什么 注意这里是用%%c和%%d输出%c和%d的 就是当你想输出%c或者%d在黑框框里的时候 你就需要用%%d和%%c 就死记就行
printf("按%%d格式输出:%d\n", b);//这样可以吗 为什么
return 0;//? 可不可以不return 或者return是干嘛的
}
/*第二集
什么是地址 也就是为什么&num1
当我们 int num1 = 5;的时候 专业术语是 创建一个整形变量num1 并初始化为5
就是在电脑内存中创建了一个空间用来存放num1
形象点说就是一堆有编号的箱子1,2,3。。。然后我们将变量num1赋值为5
将这个变量num1(可以类比为一个东西)放进这个编号为1的箱子中 那么当我们&num1的时候获取的
就是存放变量num1的箱子的编号 你可以先这样理解 具体做了什么 以后你会了解到
左值
关于什么是左值右值 左值可以简单理解为等号左边的值 右值就是等号右边的值 一般左值是必须为可以被改变的变量 右值无所谓
例如int a = 3; a就是左值 3是右值
char 字符
char a = 'b';用单引号 引起来的就是字符 里面只能放一个字母 表示将字符b赋值给char类型变量
而字符串实际上就是字符类型数组
如果不知道什么是数组 就去书上看一下什么意思 然后了解一下数组怎么进行初始化
枚举常量enum那部分 可看可不看 你当前阶段基本用不到 理解起来也有点困难 以后看就很容易理解
*/
常量
1.字面常量
2.const 修饰的尝变量
#include<stdio.h>
int main()
{
const int num=4;
printf("%d\n",num);
}
3.#define 定义的标识符常量
#include<stdio.h>
{
define MAX 10
int main()
int arr[MAX]={10};
printf("%d\n",MAX);
return 0;
}
4.枚举常量
#include<stdio.h>
enum Color
{
RED,
YELLOW,
BLUE
};
int main()
{
enum Color color=BLUE;
return 0;
}
字符串
字符串的结束标志是一个\0的转义字符。在计算字符串长度的时候\0是结束标志,不算作字符串内容。
#include<stdio.h>
int main()
{
char arr1[]="abc";
char arr2[]={'a','b','c'};
printf("%d\n",strlen(arr1));//strlen-计算字符串长度的
printf("%d\n",strlen(arr2));
return 0;
}
//输出结果为3和随机值
//如果arr2[]={'a','b','c','\0'}; -加上\0后输出结果为3 3
转义字符
\? 在书写连续多个问号时使用,防止他们被解析成三字母词
\' 用于表示字符常量'
\" 用于便是一个字符串内部的双引号
\\ 用于表示一个反斜杠,防止他被解释为一个转义序列符
\a 警告字符
\b 退格符
\f 进纸符
\n 换行
\r 回车
\t 水平制表符
\v 垂直制表符
\ddd ddd表示1~3个八进制的数字。如:\130x
\xdd dd表示2个十进制数字。如\x30 0
选择语句
#include<stdio.h>
int main()
{
int a=0;
printf("你会好好学习吗?(选择1 or 0):>");
scanf("%d",&a);
if(a==1)
{
printf("坚持住,你会有好工作\n");
}
else
{
printf("毕业回家卖红薯\n");
}
return 0;
}
循环语句
#include<stdio.h>
int main()
{
int a=0;
printf("学习\n");
while(a<5000)
{
printf("继续学习;%d\n",a);
a++;
}
if(a>=5000)
printf("好offer\n");
return 0;
}
操作符
算数操作符
+ - * / %
移位操作符
<< >>
位操作符
& ^ |
赋值操作符
= += -= *= /= &= ^= |= >>= <<=
单目操作符
! 逻辑反操作
- 负值
+ 正值
& 取地址
sizeof 操作数的类型长度(以字节为单位)
~ 对一个数的二进制按位取反
-- 前置、后置--
++ 前置、后置++
* 间接访问操作符(解引用操作符)
(类型) 强制类型转换
关系操作符
>
>=
<
<=
!=
==
逻辑操作符
&&
||