计算机存储设备包括内存和硬盘,硬盘是长期固定存储,计算机中所有程序的运行都是在内存中进行的。 eg.int a = 10;:就是向计算机申请一个内存,别名为a,放的内容是整型10,内存地址是3。
int类的除法只会取商的整数部分。
获取用户输入: eg. scanf("%d", &i); &表示地址符号,将i的地址告诉scanf(),所以scanf可以直接修改i的值。
默认情况下,C编程语言使用调用通过值的方法来传递参数 – 按值传递 如果我们之间将i传给一个函数,那么C语言将复制一个i’,然后将这个副本传给函数。函数如果将这个副本i’上存储的值修改,i本身是不会被修改的。
指针: eg. 打印出来的是一串内存地址编号。这是临时申请的地址,是随机分配的。
int *p
= &i
;
就是将i的地址当做值赋给p。 p也是一个变量名,int *加上变量名的话,特别用来定义指针变量。 p是去指针p指向的地址上所存储的值,即p取i的值2686788。
二级、三级、四级指针。 假设i是个变量,值等于0,存在3号地址。p是指向i的指针变量,p存的值就是i的地址3,而p自己的地址是10。pp存的值就是p的地址10,而pp自己的地址是17,所以**pp等于0。ppp是17,*ppp也是0。ppp的地址是14,所以pppp存的是14,****p是0。