培训第五天----基本变量及语法,数据类型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<stdio.h>
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():是库函数,包含在<stdio.h>中
  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@<?" "fg"
注意:字符串和字符的区别,单引号只能单个字符,双引号可引
'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<b:若成立,则结果为1;
             若不成立,则结果为0;
                
等于等于:== a==b:若成立,则结果为1;
              若不成立,则结果为0;
             
大于等于:>= 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'!! ,因为只有把缓存填满了,才会停止。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 205,033评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,725评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,473评论 0 338
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,846评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,848评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,691评论 1 282
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,053评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,700评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 42,856评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,676评论 2 323
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,787评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,430评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,034评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,990评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,218评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,174评论 2 352
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,526评论 2 343

推荐阅读更多精彩内容