1.C语言中的变量
变量类型 变量名;
int score;
只要有不确定的数据,就应该定义变量来保存
2)变量的赋值(也叫做变量的初始化)
score = 100;
score = a;
score = b = 100;
3)变量的输出
int a = 200;
printf("%i", a);
4)常用格式符(占位符):
1> %d\%i 整数(int)
2> %f 小数,默认是6位小数(float、double)
3> %c 字符(char)
5)变量的作用域(作用范围)
从定义变量的那一行代码开始,一直到所在的代码块结束。
6)代码块的作用
及时回收不再使用的变量,为了提升性能
7)交换变量的值的三种方法
(1).利用第三方变量
int temp = a;
a = b;
b = temp;(使用temp中间变量)
(2).不利用第三方变量
a = b - a;
b = b - a;
a = b + a;
(3).利用运算符a = a ^ b;
b = a ^ b;
a = a^ b;
8)变量的内存分析
1>内存寻址由大到小,优先分配内存地址比较大的字节给变量
2>变量越先定义,内存地址就越大
3>取得变量的地址:&变量名
printf("a的地址是:%p\n", &a);
4>输出地址符:%p
printf("b的地址是:%p\n", &b);
5>变量一定要先进性初始化才可以使用
2.scanf函数的基本使用
scanf函数只接受变量的地址
scanf函数是一个阻塞式的函数,等待用户输入
用户输入完毕后,就会将用户输入的值赋值给number变量
scanf("%d", &number);
Scanf的注意的几点
1>输入字符
char c;
scanf("%c", &c);
printf("输入的字符是%c\n", c);
2>一次性输入多个数值,并且以某些符号隔开
int num1, num2; scanf("%d#%d", &num1, &num2); printf("num1=%d, num2=%d\n", num1, num2);
3>如果scanf参数中以空格隔开,实际输入可以以空格、tab、回车作为分隔符
int num1, num2; scanf("%d %d", &num1, &num2); printf("num1=%d, num2=%d\n", num1, num2);
4>scanf中不能写\n
int a;
scanf("%d\n", &a); // 错误写法
printf("a的值是%d\n", a);
3.算数运算符
1)算数运算符的基本使用
int a = 10 + 1 + 2 - 3 + 5;
int b = -10;
int c = 10 * b;
int d = 10 / 2;
2)取余运算(模运算)
%两边都是整数
%取余结果的正负性只跟%左边的数值有关
int e = 10 % -3;
printf("%d\n", e);
3)自动类型转换(double->int)
int a = 10.8;
4)强制类型转换(double->int)
int b = (int) 10.5;
printf("%d\n", a);
5) 自动类型提升(int->double)
6)赋值运算符复合赋值运算符
a += 5; // a = a + 5;
a *= 5; // a = a * 5;
a += 5 + 6 + 4; // a = a + (5 + 6 + 4);
7)举例说明自增和自减运算符
#include int main(int argc,const char * argv[]) { int b; int a = 5; b = (++a) + (a++); printf("b=%d, a=%d\n", b, a); return 0; }
本体打印的结果是 b=12 a=7
1.程序首先从main函数开始,声明二个int型的变量a和b,在内存中各分配4个字节给a和b,并且把b的值初始化为5.
2.无论是++a或者是a++都是把a的值分别加1所以a的值是7.
3.++a是在没有进行任何运算之前加1,经过++a以后,现在a的值是6,此时的运算表达式相当于“b=6+(a++)”.
4.a++是让参加运算以后再加1所以此时的运算表达式是“b=6+6=12”
5.然后a再加1现在a的结果是7
4.sizeof
不要把sizeof当成函数,也不要看作一元操作符,把他当成一个特殊的编译预处理
sizeof有两种用法:
1)sizeof(object)
也就是对对象使用sizeof,也可以写成sizeof object 的形式
int size = sizeof(10);
int size = sizeof 10.9;
int a = 10;
int size = sizeof(a);
int size = sizeof a;
2)sizeof(typename)也就是对类型使用sizeof
int size = sizeof(char);
int size = sizeof char; 错误的
5.关系运算
C语言规定,任何数值都有真假性,任何非0值都为“真”,只有0才为“假”。
关系运算优先级
1) C语言关系运算符==、!=的优先级相等,>、<、>=、<=的优先级相等,且前者的优先级低于后者的优先级
2) 关系运算符优先级相同时,运算顺序“从左至右”
3) 关系运算符的优先级低于算术运算符
6.逻辑运算
1) 逻辑运算符与: &&
条件A&& 条件B 条件全部成立才为真!当左边条件为假时,右边条件不再运算。
2) 逻辑运算符或: ||
条件A || 条件B 其中一个条件成立或全部成立为真!条件都不成立才为假。当左边条件为假时,右边条件不再运算。
3) 逻辑非: !
!条件A 对条件A逻辑取反,条件成立即假,条件不成立即真。
逻辑运算 ! 可以多次连续使用。
4) 逻辑运算符的优先级顺序为: 小括号() > 负号 - > ! > 算术运算符 > 关系运算符 > && > ||
5)三目运算
条件?值1:值2; 如果条件成立,返回值1;不成立返回值2,三目运算一定有返回值
#include int main() { /* 计算2个整数之间的最大值 int a = 10; int b = 99; int c = a>b ? a : b; printf("c is %d\n", c); */ // 计算3个整数之间的最大值 int a = 10; int b = 999999; int c = 1000; // 求出a、b的最大值 int abMax = (a > b) ? a : b; // 求出最终的最大值 int d = (abMax > c) ? abMax : c; //int d = (((a > b) ? a : b) > c) ? ((a > b) ? a : b) : c; printf("d is %d\n", d); return 0; }
------ Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------