C库函数-printf()
这个我发现一个快速可以把十进制数转化为八进制或者十六进制。
话不多说,直接上代码。
#include <stdio.h>
int main()
{
int a = 150;
printf("整数为 %d\n" , a);
printf("八进制值为 %o \n", a);
printf("十六进制值为 %x \n", a);
return 0;
}
下面展示输出结果
。
整数为 150
八进制值为 226
十六进制值为 96
以上代码可以看到可以直接输出八进制数和十六进制数
其他的一些功能,在下面显示。
%d 十进制有符号整数
%u 十进制无符号整数
%f 浮点数
%s 字符串
%c 单个字符
%p 指针的值
%e 指数形式的浮点数
%x, %X 无符号以十六进制表示的整数
%o 无符号以八进制表示的整数
%g 把输出的值按照 %e 或者 %f 类型中输出长度较小的方式输出
%p 输出地址符
%lu 32位无符号整数
%llu 64位无符号整数
三目运算符
对于条件表达式b ? x : y,先计算条件b,然后进行判断。如果b的值为true,计算x的值,运算结果为x的值;否则,计算y的值,运算结果为y的值。
/* 三元运算符实例 */
a = 10;
b = (a == 1) ? 20: 30;
printf( "b 的值是 %d\n", b );
b = (a == 10) ? 20: 30;
printf( "b 的值是 %d\n", b );
}
下面展示一些 输出结果
b 的值是 30
b 的值是 20
赋值运算符
符号 | 实例 |
---|---|
= | C = A + B 将把 A + B 的值赋给 C |
+= | C += A 相当于 C = C + A |
-= | C -= A 相当于 C = C - A |
*= | C *= A 相当于 C = C * A |
/= | C /= A 相当于 C = C / A |
%= | C %= A 相当于 C = C % A |
<<= | C <<= 2 等同于 C = C << 2 |
>>= | C >>= 2 等同于 C = C >> 2 |
&= | C &= 2 等同于 C = C & 2 |
^= | C ^= 2 等同于 C = C ^ 2 |
大家可以在里面寻找一些规律
变量
我们都知道变量是有自己的作用范围的,有局部变量和全局变量。
要看变量的作用范围呢,就要看变量自身最靠近的花括号,这个一对花括号就是变量作用的范围。这里就不举例子了。
数据的存储类别
在C语言中,每一个变量和函数都有两个属性:数据类型和数据的存储类别。
数据类型就是按照什么类型存储,浮点型、整型之类。而数据的存储类别有四种类别:自动的(auto),静态的(static),寄存器的(register),外部的(extern)。
局部变量的存储类别
- 自动变量(auto变量)
这个变量就是在函数被使用时,系统给这些变量分配储存空间,函数使用结束后就会自动释放这些存储空间。 - 静态局部变量(static局部变量)
这个变量就是一直占用存储单元不方的,就函数调用后这个变量也是一直占住存储空间的。 - 寄存器变量(register变量)
这个就是要频繁的使用这个变量,就干脆把他放在寄存器中,读取快速。不过一般不用。
总结:自动变量(auto变量)存储在动态存储区;静态局部变量(static局部变量)存储在静态存储区;寄存器变量(register变量)变量存储在CPU的寄存器中