一.变量
1.变量的赋值
赋值就是往变量里面存入东西,赋值语句完后面加分号;。
格式:int i = 1;//“=”是赋值运算符,不是数学里面的等于号,作用是将赋值运算符右边的值赋值给左边的变量。C语言里面的等于号是”==“
2.变量的作用域
从定义变量的那一行代码开始,直到所在的代码块结束。像下图的变量a的作用域可以理解为定义变量的这一行开始,一直到下面最近的那个}为止。
{
int a;//这行开始
} // 最近的}结束
3.代码块的作用
及时回收不再使用的变量,可以提高性能。
4.变量练习-交换变量的值
(1)利用第三方变量
int a =11;
int b =12;
int temp;//中间变量做为桥梁
temp = b;
b = a;
(2)不利用第三方变量方法一
a = b-a;
b = b-a;
a = b+a;
(3)不利用第三方变量方法二
a = a^b
b = a^b
a = a^b
第一种方法性能方面不如后2种,可读性比后二种好,开发的时候用第一种。后二种不常用,面试时可能会问到。
5.变量的内存寻址
(1)内存寻址由大到小,优先分配内存地址比较大的字节给变量,所以说变量越先定义,内存地址就越大。
如下面代码,先定义变量a,再定义变量b,打印出a的地址是0x7fff5fbff828,b的值是0x7fff5fbff824。a的地址比b的地址大4字节。
(2)变量地址的获取方式:&变量名。
(3)输出地址的方式:%p。
#include <stdio.h>
int main()
{
int a;
int b;
printf("a的地址是%p\nb的地址 是%p\n",&a,&b);
return 0;
}
(4)一个变量一定要先初始化才可以使用,因为C语言中默认一个没有初始化的变量值是一个不可知的很大值。如下面所示,a没有初始化,打印出a的值是1606422582。
#include <stdio.h>
int main()
{
int a;
printf("a的值是%d\n",a);
return 0;
}
注意点:
1.定义变量要具体问题具体分析,定义变量选择适合的类型,因为不同类型占据的字节不一样,所占的内存就不一样,变量定义类型合不合理会影响程序的性能。
2.变量名,函数名属于标示符,就要遵守标示符的命名规则。
(1)只能由26个英文字母的大小写,10个阿拉伯数字0-9,下划线_组成。
(2)区分大小写,a和A是2个不同的标示符。
(3)不能以数字开头。
(4)不能使用系统的关键字作为标示符。
最好起个有意义的名字,目的是为了让别人一看到这个名称就能知道这个标示符的作用。标示符里面有多个单词的时候,可以使用驼峰标准,除第一个单词,后面单词的手写字母用大写。例如:myName。也可以使用下划线_来连接。例如:my_name。
3.变量的初始化,可以在定义的时候初始化,或者定义后再初始化。
4.在同一个代码块或作用域,不能定义相同的变量名。