针对scanf无法使用问题:#define _CRT_SECURE_NO_WARNINGS 1
接上篇,常量变量
1.常量
常量即字面意思,不变的量。有四种用法,如下:
1)字面常量
int main()
{
3;
4;
return 0;
}
2)const修饰的常变量
int main()
{
const int num = 4; //此时的num本质仍为变量,只是拥有了常属性。
num = 8;
printf("%d\n", num);
return 0;
}
此时便会报错,因为const修饰了一个num了,就不能再赋予num其他值了。
int main()
{
int arr[10] = {0}; ------->const int n = 10;
return 0; int arr[n] = {0};
} //可行 //不可行
因为n是变量,只是拥有了常数性,所以const又称常变量。
3)#define定义的标识符常量
#define MAX 10
int main()
{
int arr[MAX] ={0};
printf("%d\n", MAX);
return 0;
} //执行结果是10
4)枚举常量 enum
enum SEX
{
MALE;
FEMALE;
SECRET
};
int main()
{
printf("%d\n", MALE);
printf("%d\n",FEMALE);
printf("%d\n", SECRET);
return 0;
} //执行结果 0 1 2
2.字符串+转义符号+注释
1)字符串 ""由双引号引起的一串字符
情况一:
int main()
{
char arr1[] = "abc";
char arr2[] ={'a','b','c'};
printf("%s\n", arr1); //%s代表字符串型格式符
printf("%s\n", arr2);
return 0;
} //结果为abc abc烫烫烫烫bc
原因为:"abc"拆分来是'a','b','c','\0'(也是0)
而 'a','b','c'拆分来缺少了一个0,所以没有结束
注:字符串的结束标志是一个\0的转义符号,不算内容
情况二:
int main()
{
char arr1[] = "abc";
char arr2[] ={'a','b','c',0};
printf("%s\n", arr1);
printf("%s\n", arr2);
return 0;
} //此时执行结果为 abc abc
若将以上的printf改为 //此时需要添加头文件include <string.h>
printf("%d\n", strlen(arr1); //strlen-->string length 计算字符串长度
printf("%d\n", strlen(arr2));
则情况一输出 3 随机值
情况二输出3 3,因为情况一没有结束标志0。
2)转义符号
转变原来的意思。
\t 水平制表符(类似于tab)
\n 换行
\? 防止被解析为三字母词
\\ 让斜杠不再具有特殊意义,防止被解析为转义序列符
\' \" 与上方意义类似
\ddd 八进制转换(ddd 1-3个八进制数字 0-7)
\xdd 16进制转换 (dd表示两个16进制数字)
注:数据在计算机上存储时,存储的是二进制
a对应97 A对应65
其他的可去搜索ASCII表见详。
3)注释
注释符号//
还有一个/* */这个并不支持嵌套注释
Ctrl+k+c 注释
Ctrl+k+u 取消注释
3.选择语句
int main()
{
int input = 0;
printf("成为编程大佬\n");
printf("你要好好学习吗?(1/0):");
scanf("%d", &input);
if (input == 1)
printf("大佬大佬\n");
else
printf("菜鸟菜鸟\n");
return 0;
}
4.循环语句
包括三种1)while语句 2)for语句 3)do..while语句
1)int main()
{
int line = 0;
printf("成为编程大佬\n");
while(line < 20000)
{
printf("敲代码:%d\n", line);
line ++;
}
if(line >=20000);
printf("大佬!\n");
return 0;
}
5.函数
例子:加法
int Add(int x , int y);
{
int z = x + y;
return z;
}
int main()
{
int num1 = 10;
int num2 = 20;
int sum = 0;
sum = Add(num1 , num2);
printf("sum = %d\n", sum);
return 0;
}
6.数组
1)
int main()
{
int arr[10] ={1,2,3,4,5,6,7,8,9,10};
printf("%d\n", arr[4]);
return 0;
} //下标的方式访问元素结果:5(从0开始记)
2)
int main()
{
int arr[10] ={1,2,3,4,5,6,7,8,9,10};
int i= 0;
while(i < 10)
{
printf("%d\n", arr[i]);
i ++;
}
return 0;
}
结果依次显示1,2,3,4....
可以打开监视窗口观看:调试-->窗口-->监视
7.操作符
1)算术操作符:+ - * / %
注:/ 取商 % 取模
例如5/2=2..1 2为商,1为模。
2)移位操作符 >> 右移 <<左移
移位移动的是二进制位
例:int main()
{
int a =1;
int b=a << 2;
printf("%d\n", b);
return 0;
} //结果为4
解析:1--->0×30 01
a << 2 ---> 0×29 100
8.位操作符
这里的“位”是二进制位。
& 按位与 (有0选0)
^ 按位异或 (相同为0,不同为1)
| 按位或 (有1选1)
9.赋值操作符
= 赋值
+= -= *= /= &= ^= |= >>= <<=
例:a=a+10 与a += 10 意义相同
a=a-10 与a -= 10 意义相同
注:== 判断相等