数组:一组具有相同类型的元素的集合,数组是用下标来访问的。
#include<stdio.h>
int main()
{
int arr[3] = {1,2,3};
char er[5] = {'a','b','c','d'}//不完全初始化,剩余的默认为0;
int i = 0;
while(i<3)
{
printf("%d\n",arr[i]);
i++;
}
return 0 ;
}
操作符
#include<stdio.h>
int main()
{
int arr[5] = {1,2,3};
printf("%d\n",sizeof(arr));//计算的是数组的总大小,单位是字节,为20
printf("%d\n",sizeof(arr[1]));//计算的是单个元素的大小,为4byte
int numb = sizeof(arr) / sizeof(arr[1]);//计算的是数组里元素的个数,为5
printf("%d\n",numb);
return 0 ;
}
整数在计算机内存中存储的是补码
一个整数在二进制中表示有3种:
1.原码
2.反码
3.补码
int main()
{
int a = 0;
printf("%d\n",~a);//~是按二进制位取反,把所有二进制中数字1变为0,0变为1;
//输出的a为-1;
//0的二进制为: 00000000000000000000000000000000
//取反后~a 为: 11111111111111111111111111111111(这是补码)
//对补码-1得到反码: 11111111111111111111111111111110(这是反码)
//对反码取反得到原码: 10000000000000000000000000000001(这是原码)
//其中最开始的1表示为符号位,1代表负号,不改变
return 0 ;
}
正整数的原码、反码、补码相同。
int main()
{
int a = 10;
int b = ++a;//前置++,先++,再使用
printf("%d\n",b);//为11
printf("%d\n",a);//为11
int d = 10
int c = d++;//后置++,先使用,再++
printf("%d\n",c);//为10
printf("%d\n",d);//为11
return 0;
}
逗号表达式
int main()
{
int a = 1;
int b = 2;
int c = 5;
//a=2 b=3 c=1
int d = (a=c-3,b=a+1,c=b-2);//d=1
//逗号表达式是从左往右依次计算
//整个表达式的结果是最后一个表达式的结果
printf("%d\n",d);
return 0;
}