C语言基础与提高
分析:控制每行怎么输出
第一行用for小循环下就行 然后换行
第二行用----来划分开 (注意每个字符占4列)
从第三行开始 是循环的嵌套
分为三部分 第一部分是输出表头1| 2|这样 就用3%d加个|
第二部分是下一个循环是在 i 前面是“空格” 第三部分 i 后面是相乘i*j 然后换行 一次循环结束 然后开始第四行循环
对数组的操作是对数组元素的操作 不可以整体操作
变量是内存空间的映射
指针变量占8个字节
58-100
64 32 16 8 4 2 1
\ddd:\101 =65=’a’ 一到三位八进制数
\xhh:一到两位十六进制数
-128
10000000
整形可以++ – 但实型不行
(被除数-除数)*商=余数
横向是必然的转换
纵向是精度的转换
getche
getch
第一个 是 定义变量
第二个 是 声明变量
声明变量是将变量使用的作用范围更广
定义变量只能在函数或者这个文件中有效 在其他文件中用不起来
但声明变量可以扩展变量的使用范围
什么是野指针?应该如何避免?
1).野指针:指向不确定地址的指针变量。(即没有初始化)使用野指针易因内存泄露出现段错误。而造成内存泄露的原因有两个:
(1).访问了没有权限的内存(平时我们正确使用指针的时候,系统应经将相应的内存分配给用户,但是如果指向没有分配的内存,系统会判定我们没有权限)
(2).访问了已经释放了的内存。
2).如何减少这样的现象产生:当一个指针没有指向时,咱们一般默认指向NULL(NULL是代表内存为0的地址,而且NULL是不允许任何操作的);
(1).使用malloc分配内存(申请一个内存)
#difine MAX_SIZE 1024;
char ptr = (char ) maollc (sizeof (char) * MAX_SIZE);
认真研究这样的表达式的优点,这个表达式在代码的维护性,扩展性都大大提高了。这方面是我们平时写代码时所应该提高的。
数组【】如果是全局的 不初始化 则值全是0
如果是局部的 不初始化 则值全是垃圾值
但如果是局部的 只初始化一半 或者 只初始化一部分 那么剩下来的值在Linux系统中全部是0,在Window中全是垃圾
C语言中只允许函数调用嵌套 不允许函数定义嵌套
静态局部变量使用的场合是 这次函数调用需要使用上一次调用的某个变量值,则要将这个变量定义为静态局部变量
静态局部变量只分配一次内存,每次函数调用,都是继续用 。