C语言——你了解了吗?

本文详细介绍了C语言的基础知识,包括编译器种类、C程序的基本结构(如main函数),数据类型(如int,char,float等)、变量和常量、运算符(如前置/后置++,位操作),以及结构体和指针的概念。
摘要由CSDN通过智能技术生成

1.什么是C语言?

  • C语言编译器:Clang.GCC,WIN—TC,SUBLIME,MSVC,TurboC

2.第一个C语言程序

#include<stdio.h>
int main()//main--主函数--程序的入口--有且仅有一个,int表示main函数调用返回一个整形类型。
{
printf(“hello,world”);
return 0;
}

3.库函数--C语言本身提供的函数

4.数据类型

  • 整型--int --%d
  • 短整型--short int
  • 字符型--char--%c
  • 浮点型--float--%f
  • 地址--%p
  • 十六进制--%x
  • 双精度浮点型--double--%lf

5.字节大小

  • sizeof(char)  -- 1
  • sizeof(short)--  2
  • sizeof(int)    --  4
  • sizeof(float) --  4
  • sizeof(long)  --4/8
  • sizeof(longlong)--8
  •   sizeof(double)--8

6.变量和常量

  (1) 全局变量:定义在代码块{}之外的变量
  (2) 局部变量:定义在代码块{}之内的变量
  • C语言规定:变量要定义在当前代码块最前面
  • scanf要和&一同使用(“%d%d”,&mun1,&num2);
   注:局部变量和全局变量名字尽量不要相同,若相同,则优先局部变量。

7.extern用来声明外部变量的

8.

(1 )a++-->后置++,先使用,后++
  (2)   ++a-->前置++,先++,后使用
  (3)   a--  -- >后置--,先使用,后--
  (4)   --a  -->后置--,先--,后使用

9.常量

(1)const--常量属性--修饰的常变量
eg: const int num=4;//num=4不可改变
eg: const int n=10;//n是变量,但是又有常属性,所以,n是常变量。
int arr[n]={0};
   (2)#define--定义的标识符常量
        
#define MAX 10
int main()
{
 int arr[MAX]={0};
printf("%d\n",MAX);
return 0;
}                                   

10.枚举常量(枚举enum:一一列举)------不可改变

                          
enum Sex
{
 MALE,
FEMALE,
SCERET
};
int main()
{
printf("%d\n",MALE);
printf("%d\n",FEMALE);
printf("%d\n",SCERET);
return 0;
}             

11.字符串+转义字符+注释

 (1)以%s输出
 (2)\t、\n...
 (3)??+)表示三字母词

12.选择语句/循环语句

while/do...while/for

13.函数/数组

 (1)下标默认从0开始
 (2)下标的方式访问元素 printf("%d\n",arr[4]);

14.操作符

 (1)移(2进制)位操作符
  • >>右移
  • <<左移
        eg:整型1占用4个字节=32个bit
                                          000000000000000000000000000000000001
左移1位,移位后补位0 :   00000000000000000000000000000000010
 (2(2进制)位操作
  • & 按位与(并集)
  • |   按位或(交集)
  • ^  按位异或:对应的2进制位相同,则为0;不相同则为1
 (3)赋值操作符
       =,+=,-=, *= ,/=, &=, ^=, |=, >>=, <<=。
 (4)sizeof-----计算的是变量/类型所占的空间的大小,单位是字节。
int a=10;
printf("%d\n,sizeof(a));//4
printf("%d\n,sizeof(int));//4
printf("%d\n,sizeof a);//4
printf("%d\n,sizeof int);//error
  • 计算数组元素个数=数组总大小/每个元素的大小
  • se=sizeof(arr)/sizeof(arr[0]);    
 (5)按(2进制)位取反
    原码:符号位不变,其他位按位取反———》反码
    反码:加1————》补码
    补码:减1————》反码
  • 符号位为1的为负数,符号位为0的为正数(符号位即第一位)
  • 只要是整数,内存中存储的都是二进制的补码
  • 正数的原码、补码、反码都相同
  • 负数在内存中存储的时候,存储的都是二进制的补码
  • 在计算机中,数值都是以补码的形式保存的,一个正数的补码是其二进制本身,而一个负数的补码是其二进制按位取反后再加1

 15.关键字(不可自己创建,不可作为变量名)

        auto, break, case, char, const, continue, do, default, double, else, enum, entern, float, for,             goto, if, int, long, typedef,  register, return, short, signed, sizeof, static, struct, switch, union,           unsigned, void, volatile, while.
     
    (1)typedef----类型定义----类型重定义
      (2)  static
  •  修饰局部变量,局部变量的生命周期变长
  • 修饰全局变量,改变了变量的作用域-----让静态的全局变量只能在自己所在的源文件内部使用,出了源文件则无法使用
  • 修饰函数,改变了函数的链接属性(函数:具有外部连接的属性-----(static)---->内部链接属性)
      (3)  #define    定义常量和宏
  • 定义标识符常量(#define MAX 100)
  • 定义宏---带参数(#define MAX(x,y)         (x>y?x:y)      )

 16.指针&(%p)

       指针变量-----用来存放地址的

 17.解引用操作符*/间接访问操作符

  •  指针的大小在32平台上是4个字节,在64位平台上是8个字节。
int main()
{
int num =10;//申请了4个字节的空间
int *p=&num;//p是一个变量----指针变量
*p=20;
printf("%p\n",num);
num=20;
printf("%p\n",*p);
return 0;
}

18.结构体----复杂对象-----自己创造的一种类型

struct Book
{
char name[20];//C语言程序设计
short price;//55
};
int main()
{
//利用结构体类型创建一个该类型的结构体变量
struct Book b1={"c语言程序设计",55};
struct Book *pb=&b1;//利用pb打印出我的书名和价格
//.   结构体变量.成员
//->结构体指针->成员
printf("%s\n",pb->name);
printf("%d\n",pb->price);
printf("%s\n",(*pb).name);
printf("%d\n",(*pb).price);
printf("书名:%s",b1.name);//正常打印
printf("价格:%d元",b1.price);
b1.price=15;
printf("修改后的价格:%d\n",b1.price);
}
struct Book
{
char name[20];//C语言程序设计
short price;//55
};
int main()
{
//利用结构体类型创建一个该类型的结构体变量
struct Book b1={"c语言程序设计",55};
struct Book *pb=&b1;//利用pb打印出我的书名和价格
//.   结构体变量.成员
//->结构体指针->成员
printf("%s\n",pb->name);
printf("%d\n",pb->price);
printf("%s\n",(*pb).name);
printf("%d\n",(*pb).price);
printf("书名:%s",b1.name);//正常打印
printf("价格:%d元",b1.price);
b1.price=15;
printf("修改后的价格:%d\n",b1.price);
}
注:颜色不同使用的操作符不同。
    
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

l小糖人

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值