Linux初识(二)与C语言基础(一)

热键:双击:tab查看输入路径下包含的文件

  tab:命令补全 ↑↓:上一个或者下一个输入的命令 ctrl + c :结束当前进程

Makefile :

 自动编译格式:

   目标 :依赖(.o文件)

    条件

make clean :清除

设置清除格式:

  .PHONY: clean

  rm * 文件名

gdb工具:调试程序

gcc -g 使编译程序能够使用gdb调试

调试方式:gdb+程序名 进入gdb模式

 list :列十行 break数字 :在某一行设置断点,或者设置函数名

next :一条一条语句执行 state :进入函数 return : 从函数返回 run :从头运行

print :打印值 continue :从断点继续运行 quit :退出gdb格式 info :查看断点信息


脚本使用基础 :

最重要的脚本为Bush 脚本后缀为.sh

写脚本:开头为#!/bin/sh

 echo :输出 echo 'hello' > a 将hello写入a,为覆盖模式

    echo 'hello' >>a 将hello写入a,为追加模式

 $1第一个参数 $2第二个参数 $3第三个参数 $*所有参数 $0脚本名本身 $#参数个数

脚本用#注释

脚本循环结构之一:

for 参数 in $1 $2 $3 $4

do

done


判断文件类型脚本:

if [ -z $PATH ] ; then

 echo "error"

 exit

fi

if [ -d $PATH ] ; then

 echo "DIR"

elif [ -f $PATH ] ; then 

 echo "FILE"

fi

读取输入字符类型脚本:

read key

case "${key}" in

 [A-Z] ) echo "Upperletter";;

[a-z] ) echo "Lowerletter";;

  [0-9] ) echo "Number";;

  *) echo "error";;

esac

输入一大段代码的情况:

cat > $file <<EOF

代码

EOF


C语言基础(一)

sizeof 关键字的一种,求数据长度

有符号整型化为无符号整型反码加一

const修饰变量后为只读变量,不能通过变量修改内存值

volatile:防止编译时被优化

指针本身的大小由机器系统字长决定

堆和栈的区别:
  一、堆栈空间分配区别:
1、栈(操作系统):由操作系统自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈;
  2、堆(操作系统): 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收,分配方式倒是类似于链表。
 
 二、堆栈缓存方式区别:
1、栈使用的是一级缓存, 他们通常都是被调用时处于存储空间中,调用完毕立即释放;
  2、堆是存放在二级缓存中,生命周期由虚拟机的垃圾回收算法来决定(并不是一旦成为孤儿对象就能被回收)。所以调用这些对象的速度要相对来得低一些。
 
 三、堆栈数据结构区别:
  堆(数据结构):堆可以被看成是一棵树,如:堆排序;
  栈(数据结构):一种先进后出的数据结构。
static的用法:
第一、在修饰变量的时候,static修饰的静态局部变量只执行一次,而且延长了局部变量的生命周期,直到程序运行结束以后才释放。 
第二、static修饰全局变量的时候,这个全局变量只能在本文件中访问,不能在其它文件中访问,即便是extern外部声明也不可以。 
第三、static修饰一个函数,则这个函数的只能在本文件中调用,不能被其他文件调用。Static修饰的局部变量存放在全局数据区的静态变量区。初始化的时候自动初始化为0; 
(1)不想被释放的时候,可以使用static修饰。比如修饰函数中存放在栈空间的数组。如果不想让这个数组在函数调用结束释放可以使用static修饰 
(2)考虑到数据安全性(当程想要使用全局变量的时候应该先考虑使用static)





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值