培训第五天----基本变量及语法,数据类型ji运算符

上周作业

1.判断给定目录下的文件属性 //file or directory!
#!/bin/bash
for i in *
do
if [ -d $i ]
then
echo "$i is directory!"
elif[ -f $i ]
then
echo "$i is file!"
else
echo "else!"
fi
done

2.用for或者while实现打印等腰三角形,行数由用户输入

提示:‘’ = 2 × 行号 - 1 ;‘ ’= 总行数 - 行号*

    #!/bin/bash
        echo -n "Input 行数row:"
        read NUM
        row =1
        while [ $row -le $NUM ]
            do
            col=1
            while [ $col -le `expr $NUM - $row` ]
            do
                printf " "
                let col++
            done
            col=1 
            while [ $col -le `expr $row  \* 2 - 1` ]
             do
                printf " "
                let col++
              done
        done

今日

C语言基础

创始人:里奇,丹尼斯
优点:简洁,紧凑,使用方便,运算符丰富,数据结构丰富,结构化控制语句,程序自由度大
缺点:当代码量过大时,代码不可控性很严重

一、C基本变量及语法#

c的引入 文件后缀.c 可以无输入,但不能无输出。
编译.c:

  gcc hello.c -o hello

注释:
hello.c 当前目录下的原文件
hello 生成的目标文件
-o 请不要省略
如果生成,说明程序无误。
或者:

  gcc hello.c           //自动生成a.out文件 也可运行 不建议这样操作

实例:
#include
int main(int argc, char *argv)
{
printf("hello C!\n");
return 0;
}

程序解析:

  1. :预处理命令

  2. include:头文件的包含
  3. <>:把括号里面的内容引入到源文件中 自定义头文件用“”
  4. stdio.h:头文件,式计算机自带的库,可直接使用。
  5. main:函数名,main()是主函数,C程序源文件有且只能有一个main()即主函数!!! C程序的入口,即所有的C程序都是从main()开始执行!!
  6. int arge:参数的个数
  7. char *argv[]:记录参数
  8. printf():是库函数,包含在
  9. return 0:返回,或者函数结束
    注:此程序基本决定了C程序的基本框架

二、C语言的数据类型

1.基本数据类型

整数类型:
int 基本整形数据
short int 短整型(short)(保存的精度不同,或长度)
long int 长整型(long)
unsigned 无符号(如负号)
signed 有符号
字符型:
char //有‘’引起来的单个字母,数字或其他符号
‘e’ ‘l’ ‘!’ 等都是字符。单个!!!
getchar():获取单个字符
putchar():输出单个字符
实型(浮点型):
float:单精度 有效位:7位左右
double:多精度 有效位:15位左右
根据16位,32位,64位的不同。
枚举型: enum

构造数据类型:
数组类型,结构体(struct),联合体(union)
空类型:void

2.变量的定义

data:数据
type:类型
(1)DataType Name1,Name2, ... , Namen;
可以定义多个变量,中间用逗号隔开。结尾用分号结束!!!
(2)建议一行定义一个变量!!
DataType Name;
DataType Name1;
(3)建议一行定义一个变量并初始化!!
DataType Name = vale; //空格可有可无,条例清晰,分清代码。

int a=2;            //定义整型变量
int b,c,d;      //给整形变量赋值
    b=12
    c=13
    d=15           //定义多个整型变量并初始化   
int e=1,f=3,g=4;

3.标识符

包括变量名,函数名,及其他标号等
(1)标识符的命名要求
字母(A~Z,a~z),下划线(_),数字组成,
且第一个字符不能为数字!!
(2)命名规则
可读性要高,做到“见名知意”
驼峰命名法(德语名词命名法)尽量不要用汉语拼音!!

4.格式输入/输出: printf()/scanf()

(1)printf() 按一定格式输出:

        printf("占位符",参数列表)       //一一对应!
        printf(“打印输出的内容”)

%m.nf(右对齐) m为总位数,n精度,小数保留位数
%-m.nf(左对齐)

(2)scanf() 按一定格式输入:

        scanf("占位符",参数列表)      //一一对应!

&:取地址符号,参数列表里每一个前都要加。

占位符:
        printf()        scanf()
int       %d              %d
char         %c           %c
long         %ld             %ld
float       %f            %f
double     %lf          %lf
字符串     %s           %s

5.常量

数字常量:2323 314 2 -342
字符常量:'d' '$' '?' '4' 'A'
实型常量:1.4213 53425.54 -345.4
字符串常量:由双引号括起来的字符序列(由一个或多个字符组成的)"fgfdgfdsd" "fhdsoa@ 注意:字符串和字符的区别,单引号只能单个字符,双引号可引
'a':占一个字节
"a":占两个字节,默认 \0 为字符串的结束标志,不显示

6.变量和常量的区别:

变量:其值可以更改,先定义后使用!!
常量:其值不可以更改,随时可以使用,无需定义或声明!
变量的初始化:变量名 = 常量; //类型一定要一致!!

三、运算符

1.sizeof()

计算大写,得出对应变量或数据类型所占内存空间大小,单位:字节(byte),1字节 = 8bit

(1)sizeof DataType

    64位机如下:
    sizeof(char)  = 1
    sizeof(int)   = 4
    sizeof(short) = 2
    sizeof(long)  = 8
    sizeof(float) = 4
    sizeof(double)= 8

    32位机如下:(同64位机,只long型不同)
    sizeof(long)  = 4

(2)对应变量的内存大小 sizeof DataType value

    sizeof(ch)         =1
    sizeof(short_size) =2
    sizeof(int_size)   =4
    sizeof(long_size)  =8
    sizeof(float_size) =4
    sizeof(double_size)=8

注意(1)(2)的几个,对比数据类型所占大小,和其定义的变量所占内存的大小!

2.算术运算符

    加: +   减: -  乘: ×  除: /  取余: % a%b,a对b求余数
    自增:++   
         ++i:先自增,后取值,即 num = ++i,i =i+1;num = 1;
         i++:先取值,后自增,即 num = i++,num = 1;i = i+1;
    自减:--
         --i:先自减,后取值
         i--:先取值,后自减

3.关系运算符(英语输入法)

大于:>        a>b:若成立,则结果为1;
             若不成立,则结果为0;
             
小于:<        a= a>=b:若成立,则结果为1;
              若不成立,则结果为0;
             
小于等于:<= a>=b:若成立,则结果为1;
              若不成立,则结果为0;
             
不等于:!=  a!=b:若成立,则结果为1;
              若不成立,则结果为0;

4.逗号运算符(,)

表达式1,表达式2,表达式3        //其中每个表达式又可以是一个逗号表达式!

一次计算表达式1,表达式2,表达式3的值,
整个逗号表达式的值取决于最后一个表达式的值。

5.使用scanf()注意事项

(1)一定要严格按照scanf()中的格式输入变量的值!!
(2)使用scanf()时,取参数列表中参数的地址,scanf()是将输入的值保存到变量对应的地址中!
(3)缓存区问题
scanf()函数中不能使用换行符:'\n'!! ,因为只有把缓存填满了,才会停止。

你可能感兴趣的:(培训第五天----基本变量及语法,数据类型ji运算符)