文章目录
- May4,2023
- 常量问题
- 基本数据类型
- 补码
- printf的字符格式控制
- 关于异或、异或的理解
- 赋值运算
- ++i和i++的区别
- 关系运算符
摘自加工于C技能树
May4,2023
常量问题
//定义常量
const float PI;
PI = 3.14;
//false ,这种声明变量是错误的,常量声明之后就不能修改,即不能再赋值,所以应该声明之处就赋值。
//正确的方法为下面两种
const float = 3.14;
#define PI 3.14
printf("半径为%.2f的圆,面积是%.2f", radius, area);
//%.2f,表示精确,保留小数后2位数。
//关于科学记数法
314e-2:这个e和后面的-2是一个整体,e可以理解为*10^,与-2连起来就是*10^-2。所以314e-2就是314*10^-2=3.14。
基本数据类型
signed:代表有符号的,第一个位代表正负,剩余的代表大小,例如:signed int 大小区间为-128-127。(默认为signed)
unsigned:代表无符号的,所有的位都为大小,没有负数,例如:unsigned int 大小区间为:0-255。
补码
正数的补码是该数的二进制形式。
负数的补码需要通过以下几步获得:
(1)先取得该数的绝对值的二进制形式
(2)再将第1步的值按位取反(除符号位)
(3)最后将第2步的值加1
printf的字符格式控制
printf函数的格式控制 说明符:
%d:有符号十进制整数
%u:无符号十进制整数
%i:与%d相同
%o:无符号八进制整数(不输出前缀0)
%x:无符号十六进制整数(不输出前缀0)
%c:输出一个字符
%s:输出一个字符串
%f:浮点数,十进制小数形式,默认保留6位小数
%e:浮点数,e指数形式,小数点前有且仅有一位非零数,指数部分一般占4位
%g:根据值,自动选择%f或%e,不输出无意义的0
%p:输出指针(地址)
%%:输出一个 %
('a' <= ch <= 'z')‖('A’<=ch<='Z') (ch >= 'a' && ch <= 'z')‖(ch >= 'A' && ch<='Z')//前面表达是数学式的表达,因为C语言中没有 连等于 这样的表达,所以要用后面这种符合C语言表达的。
scanf("%c",&ch)什么意思?
scanf()读变量的时候需要其实际存储的地址。%c是字符型,把输入的数字按照ASCII码相应转换为对应的字符。字符型取地址要加&。字符串数组或字符串指针变量,由于数组名可以转换为数组和指针变量名本身就是地址,就不加&
关于异或、异或的理解
异或:男性和女性能生出孩子,否则就不行。
同或:同性之间才是真爱
来源于知友
赋值运算
int a=b=c=10
连续赋值应保证等号左边为变量,右边为赋值,并且变量已经有了存储空间;
此时bc相当于没有定义就使用了,会报错;应先定义,赋予存储空间,改为
int a,b,c;
a=b=c=10
int main(int argc, char** argv),char** argv这句啥意思???
argc是传入main的参数个数,argv是传入main的函数列表,char**二级指针去指向它
++i和i++的区别
关系运算符
注意:C语言的基本数据类型有char、int、double,我们暂时认为只有char和int适用于上述关系运算符,double和字符串(字符数组)的关系运算以后再讨论。
注意:C语言没有“之间”、“中间”、“之内”或“在某范围内”的关系运算符,例如年龄在25-30岁之间,只能表达为:年龄大于等于25岁
并且 年龄小于等于30岁。