break的作用:
(1)在switch语句中,用于跳出switch选择结构
(2)在循环语句中,break用于跳出当前循环,执行该循环之后的语句(跳到该循环之后)
continue的作用:只用在循环语句中,满足条件的换跳到该循环之前,继续执行此循环
静态变量static在整个程序运行过程中只能被初始化1次;
关于函数传参中传地址的必要性,由于形参无法改变实参的值,所以出现exchange(int *x,int *y)之类的交换xy值的函数就很有必要。如下程序展示。
1 | void exchange(int \*x,int \*y){ |
函数返回一个指针变量
1 | **int \*smaller(int \*px,int *py){** |
指向指针的指针(二级指针)指针本身也是个变量需要占一定的空间
1 | int a; |
所有的指针都是占用4个字节,32位,与声明指针类型无关
指针与数组
C语言的数组表示一段连续的内存空间,用来存储多个相同类型的值
数组名是首元素的地址,即数组名是首元素的“指针”
数组名是指针常量,即数组名的值不能改变,只能指向数组的首元素
1 | int a\[5\]={1,2,3,4,5}; |
字符串****String
C语言中的字符串是由字符数组构成的并且以’\0‘作为结束符。字符串用”” 双引号包围起来,
如”Helloworld”,在内存中应该是‘H’ ’e’ ‘l’ ‘l’ ‘o’ ‘w’ ‘o’ ‘r’ ‘l’ ‘d’ ‘\0’
字符数组与字符串的区别**: **字符数组不需要以\0结束,但字符串必须以\0 结束。
字符串3种初始化方法
1 | (1) char str\[11\] = {'G','o','o','d',' ‘,'D','a','y','!','\\0'}; |
以字符数组的形式**,**一个字符一个字符的初始化。
(2)char str[11] = “Good Day!”;用一个字符串来初始化一个字符数组。或者: char str[] = “Good Day!”; 省略下标。
(3)char* pstr = “Good Day!”;把一个字符串赋给一个字符指针,则这个
指针指向字符串的首元素,且这样的字符串是一个字符串常量,即”Good Day!” 存储在常量区,其内容不能被修改,等价于
1 | const char* pstr = "Good Day!”; |