首页 > 代码库 > 【Xcode学C-2】常量、变量、scanf、printf以及各种运算符介绍
【Xcode学C-2】常量、变量、scanf、printf以及各种运算符介绍
一、常量
(1)整型常量:1
(2)浮点常量(即带有小数的):默认是double型,如5.3,float型的后面会有个f,如5.3f。
(3)字符常量:单引号的,‘a‘或‘1‘,里面只能是一个字节的字符,汉字不行,汉字占3个字节。
(4)字符串常量:双引号的,“hello”等。
二、变量
用int、double、float、char等定义变量。定义一个变量后,第一次赋值也称之为初始化。必须在初始化后再使用变量。
(1)变量的作用域是从定义起至遇到return}止,其实就是在一个函数内有效,出了这个函数就无效,除非是全局变量。
(2)需要先定义变量,再使用,因为代码是从上至下执行的。
(3)格式化输出,%i,%d,%c,%f,%04i,%.2f等占位符。
%i和%d无差别,%i是老式写法,%d是新式写法而已。
%.2f小数点后面的数字表示保留几位小数。
%4i表示数字位数宽度。如数字是1,那么结果是 1,前面保留三位。
%04i相比上面,是用0填补空位,即数字是1,那么结果是0001。这个在iOS开发中开发帧动画可能有用,系列图片编号是001,png、002.png、003.png等。
%-4i是右对齐,数字是1,输出结果是1 ,后面保留三位。
%4i,如果数字是12345多于4位,那么不会受到约束,全部输出12345。
三、scanf注意点
int main(int argc, const char * argv[]) { //利用scanf和printf,接受用户输入的两个数字,相加后输出和结果 int number1; int number2; printf("plz input your first number:"); //&表示取地址,scanf是要求用户输入 scanf("%d",&number1); printf("then second number:"); scanf("%d",&number2); int sum=number1+number2; printf("The sum is %d\n",sum); //scanf也可以一次接受多个输入,但是用户输入格式要和定义的一模一样 //如下面一句,用户在输入时,两个数字之间也必须用逗号隔开 //我们可以用任意符号作为分隔符,不一定是逗号 //scanf("%d,%d",&number1,&number2); //如下,如果输入1234,那么程序只会截取前三位,即123,最终输出nnumber1也是123。 //scanf("%3d",&number1); //在scanf中,以回车作为结束输入信号,所以不能用\n,如scanf("%d\n",&number1); //我们输入的东西放在输入缓冲区中,当按下回车键后,输入缓冲区中又个回车键/n,此时scanf会从这个输入缓冲区中取值,如果格式不匹配,则结束取值。 //而结束取值后,输入缓冲区仍有一个数据和/n,所以遇到下一个scanf时,程序不会要求我们输入东西,而是直接到输入缓冲区取值进行赋值。 //如下程序,我们输入a,第一个不匹配格式,number3里就是个随机数,而因为输入缓冲区中又a和\n,所以灭幼要求为myC输入一个值,而是直接到输入缓冲区中取值赋值给myC,如果还是不匹配,估计会一直这样持续下去。 int number3; scanf("%d",&number3); printf("%d\n",number3); char myC; scanf("%c",&myC); printf("%c\n",myC); return 0; }
四、运算符号
(1)除了+、-、*、/之外,还有%表示模运算取余。模运算取余一般用在得到一个范围内随机数的例子中,比如需要0~15之间的范围,就用%16。
int main(int argc, const char * argv[]) { //自动类型转换,有警告 int number3=10.8; //强制类型转换 int number4=(int)10.8; //类型提升:先把8转换成double才能和10.8相加,否则不可、这个转换是计算机自动完成的。 //规律:把小类型的数据转换成大类型的数据类型 double number5=10.8+8; //参与预算的数据是什么类型,出来的值就是什么类型,如下面结果是0,但并不是前面int的作用,替换成double仍然是0 int number6=1/2; return 0; }
(3)自增自减有两种形式a++,++a,前者是先运算再自增、后者相反。所以b=a++和b=++a,前者的b=a,后者的b=a+1。
复杂的时a=10,b=(a++)+(a++),结果b是21,a是12。前面一个a++,先运算后自增,所以值是10,自增结果是11,到后面的a++时,a已经是11了,先运算的话就是用11和之前的10相加,等于21。然后自己增加一个变成12。
(4)sizeof()是计算数据以及数据类型占用内存大小的运算符。如int num1=sizeof(10)或者int num1=sizeof 10,或者先定义float a=10.5,然后int num1=sizeof(a)或者int num1=sizeof a。但是在计算数据类型时括号不能省略,即int num1=sizeof(float)。
(5)逗号运算符:是输出最后一个运算结果,如int b=(a=5,a++,a*6);结果是36。
(6)关系运算符:返回结果是真为1,假为0,且>、>=、<、<=的优先级高于==、!=,如果都是平级的时从左向右运算。关系运算符优先级小于+1*/这种算数运算符。
(7)逻辑与算符:与或非分别是&&、||、!。核心需要注意的时&&前面如果假,则后面的就不会运算了。||前面为真,则后面的就不会运算了。因为已经知道结果了,所以就省略运算了。
【Xcode学C-2】常量、变量、scanf、printf以及各种运算符介绍