初识C语言

数据类型

char ch='a'  //字符类型  一个字节

int  age= 20 //整型    四个字节

short   num=  10 // 短整型   四个字节   long  //长整型  四个字节   long  long//长长整型   八个字节

float weight = 55.5//单精度浮点型  四个字节

double d =0.0//双精度浮点型   八个字节

%d  打印整型 printf ("%d\n",100)   %c字符打印    %s字符串打印 %f 打印float %lf打印double    sizeof 关键字  操作符 计算机类型或者变量所占空间的大小

printf("%d\n",sizeof(char)); //计算char的字节

计算机中的单位

bit  :一个二进制位    byte(字节)=8bit   kb=1024 byte  mb =1024 kb  gb=1024 mb

数据类型用于变量和常量

变量分类:全局变量  ,  局部变量

int a = 100  //全局变量在{}外部定义的

int main    //当全局变量和局部变量名字冲突的时候,局部变量优先。

{                //当然不建议把全局变量和局部变量的名字写成一致的。

      int a =10;    //局部变量,在{}内部定义的

      return 0;

}

scanf:函数的输入 格式 scanf("%d %d",&a ,&b)//&他们所在的位置

变量的作用域和生命周期

//变量的生命周期:变量的创建和销毁之间的时间段

局部变量的作用域:就是变量所在的局部范围

全局变量的作用域:整个工程

局部变量的生命周期:进入局部范围生命开始,出具不范围生命结束

全局变量的生命周期:程序的生命周期

常量(四种)

1、字面常量

2、const修饰的常变量

const int  num =10;

int   num =20;(×)//程序无法更改

3、#define定义的标识符常量

# define Max  100;//以后见到Max就是100

4、枚举常量(可以一一列举的常量)

enum  sex

{

 MALE  //从0开始

 FEMALE  // 1

 SECRET  // 2

}//括号中的三个为枚举常量

字符串+转义字符

字符串就是一串字符----用双引号括起来的一串字符   如"hello  everyone \n"

字符数组----数组就是一组相同类型的元素

字符串在结尾的位置隐藏了一个‘\0’的字符  \0是字符串结束的标志(计算长度的时候不包含\0)

# include<string.h>

char arr1 []="abc";

char arr2[]={'a','b','c'};

printf("%s \n",arr1);  // abc

printf("%c \n",arr2);  //abc+一些乱码

介绍  strlen()  函数   在使用时要引用头文件  #include <string.h>

printf("%d \n",strlen(arr1));  (3)  //  abc\0    

printf("%d \n",strlen(arr2));  (随机)    // abc ????什么时候找到\0什么时候结束

也可以换一种方式

int  len = strlen(arr1);

printf("%d \n",len)

转义字符   转变了它原来的意思

\n  \t \0......重点介绍一些难以理解的\ddd  \xdd

\ddd  ddd表示1~3个八进制的数字  如\130

\xdd  dd表示2个十六进制的数字    如\x30

int main

{      printf("%c \n",'\130');   (x)  // 八进制的130是十进制的88  X的AscⅡ码是88

       printf("%c \n",\x30);     (o)  //十六进制的30 是十进制的48  O的AscⅡ码是48

       return 0 ;

}

计算一道例题printf("%d \n",strlen("c:\test\328\test.c"))(14) //八进制里面不能包含8

选择语句  :这里先不做介绍

函数  需要用代码来说明

正常代码

# include<stdio.h>

int  main()

{

       int   num1=0;

       int   num2=0;

      scanf("%d %d ",&num1,&num2);

      int num=num1+num2;

      printf("%d\n",num);

      return 0;

}

函数代码

int Add (int x,int y)

{

      int z =0;

      z= x+y;

      return z;    \\将所得的z值返回到主函数中去

}

int   main()

{

      int num1=0;

      int num2 =0;

      scanf("%d %d",&num1,&num2);

     int sum =Add (num1,num2);

     printf("%d \n",num);

       return 0;

}

数组 : 一组相同类型的元素的集合

int arr [10]={1,2,3,4,5,6,7,8,9,10};

int i;

while (i<10)

{

       printf("%d",arr[i]);  //下标访问从0开始,采用下标的访问方式

       i  ++;

}

int  char [5] ={'a','b','c'}   //不完全的初始化,剩余的默认为0

操作符

算数操作符:+  -  *  / (除) %(取余)  9/2.0=4.5(小数)   9/2=4(整数)   9%2=1(取余)

移位操作符 :>>(右移)  <<(左移)  //移的是二进制数

位操作符 :& 按位与  | 按位或  ^ 按位异或

赋值操作符  :a=a+5  //a+=5       b=b-1 //b-=1

负数在内存中存储的时候,存储的是二进制的补码;打印的,使用的是这个数的原码。

++  :a++  后置++  :先使用,后++  int a =10;int b=a++;  (a=11,b=10)

       :++a 前置++ :先++,后使用   int a= 10; int b=++a;(a=11,b=11)  

--同理

()强制类型转化  int a =3.14  (×)   int  a= (int) 3.14 (不太推荐使用

&& 逻辑与   ||逻辑或  (不做具体的介绍了

条件操作符  exp1 ?exp2:exp3   //exp1表达式为真执行exp2,否则执行exp3

常见关键字  

typedef  :类型重定义

例如   :typedef  unsigned int =u_int ;

              u_int num = 20;   //unsigned  int num = 20;

static  

1、static修饰局部变量,局部变量的生命周期变长了

2、static修饰全局变量,改变了变量的作用域,让静态的局部变量只能在自己所在的源文件中使用,出了源文件就无法使用了。

3、static修饰函数,改变了函数的链接属性,由外部链接属性-------内部链接属性

举例 第一种的情况

void test ()

{

     (static) int a;//a此时为一个静态的局部变量

    a++;

   printf("%d \n",a)

     }

int  main

{

     int i= 0;

   while (i< 5)

{

    test();

    i++;

}

      return 0;

}

没有static的时候输出答案为2 2 2 2 2  a为局部变量出了循环体a就消失了,加上static的时候,a的生命周期变长了输出答案为2 3 4 5 6 

宏 简单介绍 #define add(x,y)(x+y)

指针:有一种变量用来存放地址的成为指针变量

代码说明

int main() 

       int a = 10;//四个字节

      int *p =&a;//取地址

      printf("%p \n",&a);//一样的效果和下一行

      printf("%p\n",p);

      *p = 20; //*为解引用操作符   所以此时a为20 

        return 0;

}

指针大小:32位平台指针为4个字节,64位平台指针为8个字节

结构体 :描述复杂对象——自己创造出来的一种类型

struct Book

{

      char name[20];

      short price;

};

int  main  //利用结构体类型——创建一个该类型的结构体变量

{

     struct Book b1={"c语言程序设计",55};

     printf("书名:%s \n",b1·name);

     printf("价格:%d\n",b1·price);

     return 0;

}

指针形式打印:struct Book  b1={"c语言程序设计",55};

                         struct Book*pb=&b1;

                         printf("%s\n",(*pb).name);

                         printf("%d\n",(*pb).price);

另一种形式打印:printf("%s \n",pb→name);

                              printf("%d\n",pb→price);

//·结构体变量 · 成员​​​​​​​,结构体指针→成员

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值