小技巧1: 输出一个 %
输出一个%号(因为%是格式控制符的符号,所以输出是单独写一个%,系统会默认把%与其后面一个字符相结合当做格式控制符)
—— %%
小技巧2: 自动整理代码
整理代码组合键
选中要对齐的代码
control + i
就会自动对齐
前提:代码没有语法错误
小技巧3: 产生一个真随机数
产生一个指定范围内的随机数:
比如需求:产生10-20的随机数
int num = arc4random_uniform(11) + 10
其他类推可得
公式
int num = arc4random_uniform(最大数-最小数+1) + 最小数
指针基础概念辨析
计算机程序要装入内存才能运行,内存是以字节为单位的一片连续存储空间,再给每一个字节一个唯一的编号,这个编号称为内存地址。
我们把变量占存储空间的首字节单元地址称之为该变量的地址,在高级语言中,形象的称之为指针。
一个指针变量的值就是某个内存单元的地址或称为某内存单元的指针——存的是地址
严格上来说,指针是一个地址,是一个常量
一个普通的变量,存放的是一个值,但是这个变量在内存中有对应的地址
一个指针变量存放的是一个地址,对应的是某个变量的地址
所以我们就说一个指针变量是指向一个变量
指针变量 P-pointer
在指针变量定义中,*是一个说明符!!!!它只是用来说明,后面的那个变量是一个指针变量,int *p; p才是指针变量!!!
而在指针赋值或者使用的过程中,*p中的*是访问指针所指目标的运算符,int i = 5, p = &i; *p即i,与定义时的*不同!!!这时,*p = 5;
指针变量在定义时,指定的数据类型不是指针变量本身的数据类型,二是指针变量所指向的对象(或者目标)的数据类型。
指针本身占用的空间不变,但是根据其指向的变量的类型不同,其指向的空间也同样不同
面试题2
逻辑表达式短路问题
&& ——同一为真 所以当多个表达式联立的时候,从左至右挨个判断,若有一个为假,则后面的所有表达式都将不再计算
|| ——有一为真,所以当多个表达式联立的时候,从左至右挨个判断,若只要出现一个为
真,则后面的所有表达式都将不再计算
代码中分号的作用:
一般情况下,一条语句的后面,都要写一个分号,代表这条指令的结束——深层次来讲,CPU在识别指令的时候,用分号来判断指令的执行(当然 cpu识别的时候肯定是识别的分号所对应的机器码)
关于变量的作用域,如果我们想提前释放变量所占用的内存(前提是变量的作用已经结束),那么直接在该变量的作用完结之前手动加一个作用域(放在一对大括号中)
前面我们在编程的时候对变量的操作,实际上是对变量对应的某个存储单元的操作。