数据类型:关于数据类型各个类型对应不同的标识符:列如
int | %d |
char | %c |
double/float/long | %f |
在这里我们可能会遇到%0.1f的标识符,这表示省略到小数点后一位,列如:5.57变为5.6,其遵循四舍五入原则。
家学习了这么就的C语言可能还有同学不太理解C语言中各种数据(如int ;short;long;float;char等 )的字节吧,那么我们可以用一段代码来表示出来:
#include<stdio.h>
void main()
{
int a;
printf("sizeof(char):%d\n", sizeof(char));
printf("sizeof(short int):%d\n", sizeof(short int));
printf("sizeof(int):%d,sizeof(a):%d\n", sizeof(int), sizeof(a));
printf("sizeof(unsigned int):%d\n", sizeof(unsigned int));
printf("sizeof(long int):%d\n", sizeof(long int));
printf("sizeof(double):%d\n", sizeof(double));
printf("sizeof(long double):%d\n", sizeof(long double));
}
//源代码来自书籍《C语言程序设计》;
其中sizeof()函数是用于计算所占字节空间大小,则得出结果为:
但是由于每个调试器不同也会使字节不同,标准的字节还需要自行操纵;
主要字节的个数:
c类型 32 64
char 1 1
short int 2 2
int 4 4
long int 4 4
long long int 8 8
char* 4 8
float 4 4
double 8 8
在不同的编译器中可能会有偏差。
简单介绍一下~(按位取反),&(按位与),|(按位或),^(按位异或),<<(按位左移),>>(按位右移):
~x:按位取反,a=~x,a=-(x+1);
5&6:按位与 八位二进制5:0000 0101
6:0000 0110(只有上下都为真才为真)
5&6: 0000 0100=4
5|6:按位或 八位二进制5:0000 0101
6:0000 0110(上下有存在真则为真)
5|6: 0000 0111=7
5^6:按位异或 八位二进制5:0000 0101
6:0000 0110(上下不同为真)
5|6: 0000 0011=3
a==89,a<<2按位左移2位八位二进制89:0101 1001
a<<2:(01)0110 0100=356;
按位右移a>>2:0001 0110(01)=22;
表达式的运算:对于
表达式1?表达式2:表达式3的解析: 如果表达式1为真则返回表达式2的值如果表达式为假则返回表达式3的值。列如a>b?a:b>c?b:c就等价于a>b?a:(b>c?b:c).
对于逗号的运算实例:
#include<stdio.h>
void main()
{
int a, b, c, d;
b = (a = 2, a * 3, a + 4);
printf("%d\t%d\n", a, b);
c = (a = 3, b = a + 2, b++);
printf(" % d\t % d\t % d\n", a, b, c);
d = (a + 6, a - 1, a /= 2, a * 4);
printf(" % d\t % d\n", a, d);
}
输出结果为:
最后使运算符的优先级和结合性:
以上是本次介绍的全部内容供大家参考。