脚本、C语言笔记

本文介绍了C语言的基本数据类型,如int、float、double和char,并探讨了const和volatile修饰符的含义。接着讲解了常量、变量、转义字符、字符串结束标志以及不同类型数据的混合运算。还涉及了算术运算符、Makefile的编写和GDB调试工具的使用。最后,简述了Shell脚本的基础知识,包括变量赋值、条件判断和循环结构。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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’进行修改




















评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值