1.基本数据类型
整型int
整数,在目前绝大多数机器上占4个字节。TC环境中是2个字节
单精度实型float
单精度浮点数,一般是4个字节长
双精度实型double
双精度浮点数,一般是8个字节长
字符型char
字符,一般是1个字节长
用来表示256个ASCII字符,或者0~255的整数
枚举型enum
2.const,volatile修饰变量的时候表示什么意思?
const修饰只读变量,不能通过变量的值去修改对应内存的数据;volatile是防止编译时被优化
3.常量与变量
常量是一种在程序中保持固定类型和固定值的数据。编译系统从数据形式上可以区分(除枚举类型外)。常量分为:
(1)整型常量(2)实型常量(3)字符常量(4)字符串常量(5)枚举常量
变量是在程序执行过程中可以改变。
4.转义字符:\n表示换行,\t表示水平制表
5.字符型数据:C规定:在每一个字符串常量的结尾加一个"字符串结束标志",以便系统据此判断字符串是否结束。C规定以字符‘\0’作为字符串结束标志。
6.各类数值型数据间的混合运算:
整型(包括int,short,long)、浮点型(包括float,double)可以混合运算。在进行运算时,不同类型的数据要先转换成同一类型,然后进行运算.
(1)在进行赋值操作时,会发生类型转换(2)将取值范围小的类型转为取值范围大的类型是安全的,反之是不安全的
如果大类型的值在小类型能容纳的范围之内,则平安无事,但是,浮点数转为整数,会丢失小数部分,非四舍五入;反之,转换后的结果必然是错误的,具体结果与机器和实现方式有关。避免如此使用,好的编译器会发出警告。
7.算术运算符
C的运算符有以下几类:
(1)算术运算符 (+ - * / %) (2)关系运算符 (> < == >= <= !=) (3)逻辑运算符 (! && ||)
(4)位运算符 (<< >> ~ | ∧ &) (5)赋值运算符 (=及其扩展赋值运算符) (6)条件运算符 (?:)
(7)逗号运算符 (,) (8)指针运算符 (*和&) (9)求字节数运算符(sizeof) (10)强制类型转换运算符( (类型) )
(11)分量运算符(.->) (12)下标运算符([ ]) (13)其他 (如函数调用运算符())
8.Makefile(编译工程)
target : depengency
( Tab 字符) command
实例
第一步.
vim Makefile
第二步.
hello : hello.o
(Tab 键 空4格) gcc hello.o -o hello
hello.o : hello,c
(Tab gcc -c hello.c -o hello.o) //可删,隐含规则
<=>
Target = hello
Object = hello.o, print.o
$(Target) :$(Object)
(Tab) gcc $(Object) -o $(Target) //只有 command 需要缩进
$(Object) : hello.c
print.o : print.c
第三步.make
print.c
#include <stdio.h>
void print(char *s)
{
printf("%s",
s);
}
make clean //清除文件
实例
clean :
(Tab) rm *.o hello //清除 所有 .o 文件 以及hello文件
.PHONY :clean //防止存在同名 clean 文件
9.GDB
gcc test.c -o test -g //加上 -g 可使用调试工具
gdb test // gdb + 文件名
l // list 列出10行 // 一次显示10行 ,l + n 从 n 行显示
b // break b 17 //17 行设置断点 b main // 在main 处设置断点
info b // 查找断点
delete n // 删除第 n 个断点
r // run 运行
n // next 下一行 // 不进入函数
s // step 下一步 // 可进入函数运行
c // continue 继续
return // 返回 在函数中可使用,从当前函数返回
q // 退出
10.Shell // 命令解析器 .sh // 脚本
#!/bin/sh //命令的集合
Tmp = "hello"
echo (输出) echo "hello" > a // 覆盖 >> //追加
echo ${Tmp}
mkdir $1 // 创建第一个参数的同名目录
./shell.sh 1 2 3 //追加参数1 2 3(命令行参数)
#在脚本内为注释符号 cat + 文件 // 显示
for dir(变量) in $1 $2 $3 $4 $5 // 命令后+ 空格
do
mkdir $dir
cd $dir
touch $dir
echo "hello $dir" > $dir
cd ..
done
注意: 赋值‘=’,两边都不能空格,否则不变色,会有报错
Path.sh //判断所给 是文件还是目录
#! /bin/bash
PATH = "/home/155/Shell/test.sh" || 空格 一定要空
if [ || -d $PATH || ]; || then
echo "DIR"
elif [ || -f $PATH || ];
|| then
echo "FILE"
fi
if
[ || -z $PATH || ]; || then
echo "ERROR"
exit
fi
#! /bin/sh
read key (C 内的scanf,从键盘输入)
case "${key}" in
[ A - Z ] ) echo "UpperLetter" ;;
[
a - z ] ) echo "LowerLetter" ;;
[
0 - 9 ] ) echo "Number" ;;
*
) echo "ERROR" ;;
esac
注意 : Shell 与 C有差别 可用 ‘ecxport LANG C’进行修改