C语言基础——基本变量和语法,运算符(20161212)

c语言之父 丹尼斯-里奇 贝尔实验室

C语言优点:运算符丰富;数据结构类型丰富;结构化的控制语句;语法限制相对自由;允许访问物理内存,可对硬件操作;执行效率高;移植性好。

缺点:代码数量多时,不可控性增加,难度较大。

一、c基本变量及语法

1、C引入

  编译:gcc hello.c -o hello //生成目标文件,必须加上hello

  程序:                           解析: 

#include<stdio.h>                       //#;预处理命令  
                                         // include :头文件包含
                                          // < >:把括号里的内容引入到源文件中
                                         // stdio.h:头文件,是计算机在带的库,可以直接使用
  int main (int argc,char *argcv[])   //main:函数名,main()是主函数,c程序源文件有且只能有一个main()函数,即主函数!!C程序的入口,即所有的C程序都是从main开始执行
                                          // int argc :参数个数

                                          //   char *argv[]:记录参数 
  
 { 

printf("hello,world!");          //printf():库函数,包含在<stdio.h>中,按一定的格式输出。

return 0;                                 //return 0;返回值,函数结束。

 }





ps:此程序基本决定了,C程序的框架!

2、C的数据类型

(1)基本数据类型:

整数型:

int, 基本整型

short int,短整型

long int,长整型

unsigned,无符号

singed,有符号

字符型:char

字符:由' '引起来的单个字母,数字,或者其他符号,e,1,!等

getchar():获取单个字符

putchar():输出的单个字符

实型,浮点型:

              float:单精度     有效位7位左右

              double :双精度  有效位15位左右

                numf e/E n   //n为整数,科学计数法

                  float  num=1.23E4;//num为1.23*10^4

枚举类型:enum

构造数据类型:

数组类型,结构体类型(struct),联合体类型(union)

指针类型:

空类型:void

#include<stdio.h>
//数据类型的实例
int main(int argc,char *argv[])
{
    //定义整型变量,并初始化
    int a=2;
    //定义整型变量
    int b,c,d;
    //给整型变量赋值
    b=12;
    c=13;
    d=15;
    //定义多个整型并初始化
    int e=11,f=10,g=9;
    //无符号数据类型
    unsigned h=-123;
    printf("%d\n",a);

    printf("%d\n",h);
    printf("%d\n",d);
return 0;
}

(2)变量的定义:

<1>DataType Name1,Name2,Name3,...,Namen

可以定义多个变量,中间用“,”隔开,结尾用“;”结束。

<2>

DataType Name1;

DataType Name2;

DataType Name3;

<3>建议一行定义一个变量,并初始化!!!

DataType Name1 = value;

3.标识符:

包括变量名,函数名,及其他标号等

<1>标识符的组成

字母(A~Z,a~z),下划线(_),数字,且规定第一个字符,不能为数字

<1>命名规则

可读性要高,做到“见名知意”

驼峰命名法:单词首字母大写

杜绝使用汉语拼音!!!

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

<1>printf()----按一定的格式输出:printf(“占位符”,参数表);
一一对应

----printf(“打印输出的内容”)

----%m.nf:(右对齐)

m:总位数

n:小数部分的保留位数,若n+1大于m,则输出n代表原来数值。

----%-m.nf按照左对齐。

<2>scanf()

按一定格式输入:scanf(“占位符”,&参数表);

一一对应
#include<stdio.h>
int main ()
{
    //定义变量并初始化
    float numf=1.234;
    //按格式输出numf的值
    printf("numf =%f\n",numf);
    //输入numf的值,&numf为地址,将输入的数据保存到numf对应的空间中!
    scanf("%f",&numf);
    printf("numf =%5.3f\n",numf);
    return 0;
    
}

&:取地址符号


占位符:

                  print()              scanf()

int                 %d                      %d

char                   %c                       %c

long                  %ld                       %ld

float                %f                      %f

double              %lf                     %lf

字符串             %s

5.常量

数字常量:123 1 -323

字符常量:‘s’ ‘$’

实型常量:1.23 -1.234

字符串常量:有“ ”括起来的字符序列,由一个或者多个字符组成。

注意:字符串和字符的区别

‘a’:占用一个字节

“a”:占用两个字节

‘\0’:字符串的结束标志,一般不显示

6.变量和常量的区别

变量:

其值可以更改,先定义后使用。

常量:

其值不可以更改,随时可以使用,无需定义或声明。

变量的初始化:

变量名=常量;//注:类型一定要一致!!!

二、运算符

1、sizeof()

计算大小,得出对应变量或数据类型所占内存空间的大小

(1)单位:字节(byte)
1字节=8位(bit)

sizeof DataType:  //64位机下

sizeof(cahr)=1

sizeof(int)=4

sizeof(short)=2

sizeof(long)=8

sizeof(float)=4

sizeof(double=8

sizeof DataType:  
//
32位机下

sizeof(cahr)=1

sizeof(int)=4

sizeof(short)=2

sizeof(long)=4 //只有long 不同

sizeof(float)=4

sizeof(double=8

(2)对应变量内存打大小

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)的结果,对比数据类型所占大小,和其定义变量所占的内存大小

#include<stdio.h>   //sizeof实例
int main()
{
    printf("sizeof DataType:\n");
    printf("sizeof(cahr)=%ld\n",sizeof(char));
    printf("sizeof(int)=%ld\n",sizeof(int));
    printf("sizeof(short)=%ld\n",sizeof(short));
    printf("sizeof(long)=%ld\n",sizeof(long));
    printf("sizeof(float)=%ld\n",sizeof(float));
    printf("sizeof(double=%ld\n",sizeof(double));
    char ch;
    short short_size;
    int int_size;
    long long_size;
    float float_size;
    double double_size;
    printf("sizeof(ch)=%ld\n",sizeof(ch));
    printf("sizeof(short_size)=%ld\n",sizeof(short_size));
    printf("sizeof(int_size)=%ld\n",sizeof(int_size));
    printf("sizeof(long_size)=%ld\n",sizeof(long_size));
    printf("sizeof(float_size)=%ld\n",sizeof(float_size));
    printf("sizeof(double_size)=%ld\n",sizeof(double_size));

    return 0;
}

2、算数运算符(七个)

加+、减-、乘×、除/、取余%

自增:++

++i  //先自增后取值,

num=++i;

即:i=i+1;

     num=i+1

i++ //先取值后自增

num=i++

即num=i;

i=i+1;
#include<stdio.h>
//自加运算实例
int main()
{
    int num=5;
    int sum=++num + num++;
    printf("sum=%d\n",sum);
    int i=5;
    int j=i++ + i++;
    printf("j=%d,i=%d\n",j,i);
    return 0;
}
#include<stdio.h>//基本算数运算
int main()
{

int a=12;
    int b=3;
    int sum=a+b;
    printf("%d,%d,%d\n",a,b,sum);
    int min=a-b;
    printf("%d,%d,%d\n",a,b,sum);
    int mul=a*b;
    printf("%d,%d,%d\n",a,b,mul);
    int del=a/b;
    printf("%d,%d,%d\n",a,b,del);
    int rem=a%b;
    printf("%d,%d,%d\n",a,b,rem);

    return 0;
}

自减:--

--i:先自减,后运算

i--:先取值,后自减

3、关系运算符

大于:>

a>b:成立,返回1;不成立返回0;

小于:<

a<b:成立,返回1;不成立返回0;

等于:==

a==b:成立,返回1;不成立返回0;

大于等于:>= //a大于b,或者a=b;

a>=b:

成立,返回1;不成立返回0;

小于等于:<=

a<=b:     //a小于b,或者a=b;成立,返回1;不成立返回0;

不等于:!=

a!=b:成立,返回1;不成立返回0;

4.逗号运算符(,)

表达式1,表达式2,表达式3,...

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

//依次计算表达式1,表达式2,表达式3,.....

//表达式的值取决于最后一个表达式的值
#include<stdio.h>  //关系运算符实例
int main()
{
    int a=3;
    int b=4;
    printf("input a,b:");
    scanf("%d,%d",&a,&b);
    int res = a>b;
    printf("%d>%d的结果为:%d\n",a,b,res);
    res = a <= b;
    printf("%d<=%d的结果为:%d\n",a,b,res);
/*  printf("a>b :%d\n",a>b);
    printf("a<b :%d\n",a<b);
    printf("a==b:%d\n",a==b);
    printf("a<=b:%d\n",a<=b);
    printf("a>=b:%d\n",a>=b);
    printf("a!=b:%d\n",a!=b);
*/
    return 0;
}

5、使用scanf

注意事项

(1)一定要严格按照scanf()中的格式输入变量的值!!!

(2)使用scanf()时,参数列表中的参数地址,scanf()是将输入的值保存到变量对应的地址中!

(3)缓存区问题-----重点

scanf()函数中不能使用换行符:’\n’

总结:C语言基本的语法和变量以及运算符,以前有过接触,没有理解难度,难点在于编程熟练程度不够,需要强化练习。

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

推荐阅读更多精彩内容

  • 版权声明:本文为 gfson 原创文章,转载请注明出处。注:作者水平有限,文中如有不恰当之处,请予以指正,万分感谢...
    gfson阅读 2,923评论 0 6
  • •1 C语言程序的结构认识 用一个简单的c程序例子,介绍c语言的基本构成、格式、以及良好的书写风格,使读者对c语...
    CONLYOUC阅读 8,699评论 9 66
  • 指针是C语言中广泛使用的一种数据类型。 运用指针编程是C语言最主要的风格之一。利用指针变量可以表示各种数据结构; ...
    朱森阅读 3,430评论 3 44
  • 昨日ivvi新品背面照的曝光,黑色主打,低调奢华有内涵,让不少人期待了一把! 今日实时追踪,ivvi新品谍照再次曝...
    椰子姐姐阅读 255评论 0 0
  • 如沐的秋风吹过校园,一株株小草探出了脑袋,他们向看怪物一样看着大树,骄傲的举起脑袋,对大树说,我们的梦想比你还高呢...
    贾馨婷阅读 830评论 2 6