文章目录
常量
在程序使用之前已被设置好,在整个程序的运行中不会发生变化
字面常量
字面意思的常量,如3,4,7,abcd…
const修饰的常变量
const int num = 4
num=4不能被改变,这是const的常属性
但num本质上是一个变量
define定义的标识符常量
#define MAX=1000;
MAX不能改
枚举常量
用于那些可以一一列举的常量(性别,三原色,血型,月份…)
举例:
enum Sex{
Male; //枚举常量
Female;
Secret;
};
enum Sex s=Male;//枚举类型创建的变量s可以改,但Sex中的常量不能改
字符串
由双引号引起的一串字符。
“hello world”
存储在字符数组中 char arr[] = “hello world”
每个字符串的结尾都隐藏了一个\0的字符,字符串的结束标志是 \0,计算长度时\0不算在内
转义字符
用\来转义其他字符
\n换行
\t水平制表符,类似tab键
\ddd,表示1-3个八进制数,先转换成十进制,再对应ascll码表找到对应字符
例:\132 ——>90——>Z
\xdd,表示16进制数,同上
\防止被转义字符转义
printf("%d\n", strlen(“c:\test\329\test.c”));
14 \t,\32均是一个字符
循环
while循环
执行循环体内的语句直至判断为真
while(判断语句)
{
}
int main(){
printf("进入大学\n");
while(line<=100000){
line++;
printf("继续努力敲代码");
}
if(line>100000)
printf("走向成功!");
return 0;
}
for循环
do…while循环
函数
库函数/自定义函数
自定义函数:
加法函数Add
sum=num1+num2;——>
sum=Add(num1,num2);
在主函数外写函数体
Add(int x,int y)
{
int z=x+y;
return z;//返回的z传到sum中
}
数组
数组:一组相同类型元素的集合
int arr[10]; //定义一个存放10个整数的数组
char arr[10]; //定义一个存放10个字符的数组
int arr[10]={1,2,3,4,5,6,7,8,9,10}`
int arr[10] = { 1,2,3,4,5,6,7,8,9,10 };
printf("%d\n", arr[4]);
操作符
算术操作符
加减乘除:+ - * /
取模(取余) %
移位操作符(二进制位)
左移 >>
右移 <<
int a=1;
int b=a<<1; 1字节=32bit,32位 a:00000000000000000000000000000000
b:0000000000000000000000000000010
位操作符
按位与& 对应二进制位均为1,结果位为1
按位或 | 只要有一个为1,结果位为1
按位异或 ^ 相同为1,不同为0
赋值操作符
= += -= *= /= %= &= |= ^=
a=a+1 ——> a+=1
单目操作符
只有一个操作数
!逻辑反操作 ( 在c语言中,0表示假,非0表示真,逻辑反操作)
-负值 + 正值
& 取地址
sizeof 计算类或变量大小(单位是字节)
~ 按位取反
(类型)强制类型转换 int a=(int)3.14 将double型转换成整型
++ - -
int a=2;
int b=++a;//前置++,先++后使用
//a++,a=3,b=a=3
int c=a++;//后置++,先使用,再++
//c=a=2,a=a++=3
双目操作符
有两个操作数
关系操作符
< > >= <= == !=(不等于)
逻辑操作符
&& 逻辑与(一个为假都为假:0)
|| 逻辑或 (一个为真即为真:1)
条件操作符(三目)
表达式1 ? 表达式2 :表达式3
表达式1成立,表达式2计算,结果是:表达式2的结果
表达式1不成立,表达式3计算,结果是:表达式3的结果
逗号表达式
用逗号隔开的表达式,特点是从左到右依次计算
int a=3;
int b=2;
int c=4;
int d=(a=c-1,b=a+2,c=a+b);
printf("%d",d);// 7
//从左到右依次计算,最终的结果是最后一个表达式计算的结果
函数调用
( )调用函数时函数名后的( ),
如printf("%d",a);