一、常量
1.字面常量
即数字本身,例如:3,100,3.14
int main()
{
int num = 4;
printf("%d\n", num);
num = 8;
printf("%d\n", num);
return 0;
2.常变量
const-常属性(赋予一个变量常属性,变量→常变量(当然其本质上还是个变量),如下图,num变为const修饰的常变量,它的值无法改变
int main()
{
const int num = 4;
printf("%d\n", num);
num = 8;
printf("%d\n", num);
return 0;
}
int main()
{
const int n = 10;//n是变量,但是又有常属性,所以说n是常变量
int arr[n] = {10};
return 0;
}
3.标识符常量
#define定义的标识符常量
int main()
{
#define max 10
int arr[max] = { 0 };
printf("%d\n", max);
return 0;
}
4.枚举常量
enum Color
{
RED,
GREEN,
BLUE
};
int main()
{
printf("%d\n", RED);//0
printf("%d\n", GREEN);//1
printf("%d\n", BLUE);//2
return 0;
}
二、字符串类型——用“”引起来的一串内容
int main()
{
char arr1[] = "abc";//数组
//字符串内容中默认以'\0'结尾,是字符串的结束标志,如果没有\0,则后随机值
char arr2[] = { 'a','b','c'};
printf("%s\n", arr1);//abc
printf("%s\n", arr2);//abc烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫贴-??
return 0;
}
上图中97,98,99是ASCII码值,这种编码方式叫做ASCII编码,每一个字母符号在计算机中对应一个ASCII码值
转义字符
\n换行
\t水平制表符
\\转义第二个反斜杠,表示为一个\
······
三、循环
while循环
int main()
{
int line = 0;
while (line < 20000)
{
printf("请继续加油\n");
line++;
}
printf("God job!");
return 0;
}
for循环
......
四、函数
分为库函数和自定义函数
int add(int x, int y)//自定义函数
{
int z = x + y;
return z;
}
int main()
{
int num1 = 10;
int num2 = 20;
int sum = 0;
int a = 100;
int b = 200;
sum = add(num1, num2);//调用自定义函数
printf("sum=%d\n", sum);
sum = add(a, b);
printf("sum=%d\n", sum);
return 0;
}
特点是简化代码,代码复用
五、数组
定义:一组相同类型元素的集合
int main()
{
int arr[10] = { 1,2,3,4,5,6,7,8,9,10 };//定义一个存放10个整数数字的数组,数组下标从0开始
printf("%d\n", arr[4]);//用下标的形式访问元素,e.g. arr[下标]
char ch[20];
float arr2[5];
return 0;
}
int main()
{
int arr[10] = { 1,2,3,4,5,6,7,8,9,10 };//定义一个存放10个整数数字的数组,数组下标从0开始
int i = 0;
while (i < 10)
{
printf("%d\n", arr[i]);
i++;
}
return 0;
}
六、操作符
1.算数操作符
+加
-减
*乘
/除
%取模(取余数
2.移(二进制)位操作符
<<左移
>>右移
int main()
{
int a = 1;//整型1占4个字节-32bit位
//00000000000000000000000000000001
int b=a << 1;
//00000000000000000000000000000010
printf("%d\n", b);//2
int c = a << 2;
printf("%d\n", c);//4
return 0;
}
3.(二进制)位操作
&按位与(0为假,1为真,对应的二进制位只要有1个为假就是假,全为真才是真)
int main()
{
int a = 3;//011
int b = 5;//101
int c = a & b;//001
printf("%d\n", c);//1
return 0;
}
| 按位或(0为假,1为真,对应的二进制位只要有1个为真就是真,全为假才是假)
int main()
{
int a = 3;//011
int b = 5;//101
int c = a | b;//111
printf("%d\n", c);//7
return 0;
}
^按位异或/非(0为假,1为真,对应的二进制位相同则为假,相异则为真)
int main()
{
int a = 3;//011
int b = 5;//101
int c = a ^ b;//110
printf("%d\n", c);//6
return 0;
}
4.赋值操作符
赋值符=
复合赋值符a=a+1~a+=1
a=a-2~a-=2
a=a&3~a&=3
*=; %=; >>=; <<=; |=; ^=
……
5.单目操作符
!逻辑反操作(0-假,非0-真)
int main()
{
int a = 10;
printf("%d\n", a);//10
printf("%d\n", !a);//a为真,!a为假,即是0
return 0;
}
int main()
{
int a = 0;
printf("%d\n", a);//0
printf("%d\n", !a);//a为假,!a为真,即是1
return 0;
}
-取负值
+取正值
sizeof计算的是变量/类型所占空间的大小,单位是字节
int main()
{
int a = 10;
int arr[10] = { 0 };
int sz = 0;
printf("%d\n", sizeof(arr));//40
sz = sizeof(arr) / sizeof(arr[0]);//计算数组元素的个数
//数组总大小/数组中每个元素的大小
printf("%d\n", sz);//10
printf("%d\n", sizeof(a));//4
printf("%d\n", sizeof(int));//4
printf("%d\n", sizeof a);//4
return 0;
}
&取地址
~按(二进制)位取反
int main()
{
int a = 0;//00000000000000000000000000000000
int b = ~a;//11111111111111111111111111111111,b是个有符号的整型,最高位为0表示正数,最高位为1表示负数
//原码、反码、补码,原码→(符号位不变,其他位取反)→反码→+1→补码
//负数在内存中存储的时候,存储的是二进制的补码
printf("%d\n", b);//-1,打印的是这个常量的原码
//所以过程是:b是补码,b-1得到反码为11111111111111111111111111111110
//反码符号位不变其他位取反得到原码为100000000000000000000000000000001,表示-1
return 0;
}
++自增(即+1)
int main()
{
int a = 10;
int b = a++;//后置++,先将a赋值给b,后a+1
printf("a=%d\nb=%d\n", a, b);//a=11,b=10
int c = 10;
int d = ++c;//前置++,先c+1,后赋值给d
printf("c=%d\nd=%d\n",c,d);//c=11,d=11
return 0;
}
--自减(即-1)
int main()
{
int a = 10;
int b = a--;//后置--,先将a赋值给b,后a-1
printf("a=%d\nb=%d\n", a, b);//a=9,b=10
int c = 10;
int d = --c;//前置++,先c-1,后赋值给d
printf("c=%d\nd=%d\n",c,d);//c=9,d=9
return 0;
}
()强制类型转换
int main()
{
int a = 3.14;
return 0;
}
int main()
{
int a = (int)3.14;//double→int
return 0;
}
标签:10,arr,return,int,C语言,初识,printf,main
From: https://blog.51cto.com/u_16292010/7872897