函数,数组,

函数


for(表达式1, 表达式2, 表达式3)

表达式1:初始条件

表达式2:结束条件

表达式3:执行语句


逗号语句(,) 

表达式1,表达式2 : 运行先1后2,但是,有1的过程,结果显示是表达式2 的结果


break


只能出现在循环和switch语句中


最长的循环放在最内层



子函数


1.通过函数名找到函数入口地址

2.给形参分配空间

3.传值

4.执行函数体

5.返回

6.释放空间

注:return 以下所有代码不执行


寄存器 register int a;(寄存器内):提高效率,不能取地址


extern 声明外部变量  (声明不需要内存,定义需要内存)


static作用

1.修饰全局变量,改变其作用域,只能在本文件使用

2.修饰函数,改变其作用域,只能在本文件中调用

3.修饰局部变量,改变变量的生命周期,直到程序运行结束,变量才会被释放


#if 0 ...          #enfif:注释,开头是#,在预处理过程就执行


<stdio.h> :库函数的文件

'stdio.h'    :当前目录下寻找,用于自定义头文件



数组



float mark[100]

mark[0 ]:低地址

a 与 &a 的指相同

a 首元素地址 

&a 数组的地址

a + 1 下一个元素(+4)

&a + 1 下一个数组(+16)


二维数组

a[3][4] (三行四列),要先进行初始化

int a[3][4] = {{1, 2, 3, 4} , {2, 3, 4, 5}, {3, 4, 5, 6}};

%p:显示地址


* == [ ]    a[0] == *(a + 0)

a:   首行地址    +1     加一行

&a:数组的地址   +1   加一个数组

a[0]:数组首行元素的地址  +1   加一个元素 



a[3][4] 以下哪个不能表示a[1][1]

*(a[1] + 1)         ==     *(&a[1][0] + 1)

*(&a[1][1])        =>      a[1][1]

(*(a + 1)[1])       =>     a[1][1]

*(a + 5)             =>     a[5]


求个数

printf( "%d\n", sizeof(a) / sizeof(a[0]));


字符串后有\0

‘hello’:一共有6 个字符


strcat:连接

strncat(ptr, &ch, 1);    <=>   ptr[num - 1] = ch;

strcpy:覆盖(\n 也会跟着覆盖)

strncpy:覆盖指定个数 :strncpy (str, ptr, 5)


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值