首页 > 其他分享 >初识C语言(了解)

初识C语言(了解)

时间:2022-12-18 18:01:25浏览次数:39  
标签:main return 字节 int 初识 C语言 了解 printf include

计算机语言的发展

什么是C语言?

计算机语言是人与计算机交流的语言,C语言是计算机语言。此外计算机语言还有c++ 、jave、py等语言。

计算机语言的发展

二进制语言

  • 电脑是硬件,只能识别电信号 +-电,正负电分别对应二进制数1(正电)、0(负电)。如1010000101011比较复杂,需要查手册才能写代码。

汇编语言

为了能更便捷的写代码,便给常用序列汇编成固定符号。如10100001--ADD表示。ADD为助记符,用助记符表示二进制序列的语言叫做汇编语言。

B语言

以上语言称为低级语言


C语言

C++语言

C语言后为高级语言


美国国家标准语法ANSI

如89年的C语言标准———c89;

90年的C语言标准——c90;

后期还有c99、c11等标准,但其并不流行,很多编译器都不支持。

常用编译器

Clang、GCC、MSVC、TurboC等

第一个C语言程序

初识C语言(了解)_操作符

常用快捷键

Fn+F10从某行开始执行

Ctrl+Fn+F5运行

Fn+F7 编译

数据类型

  • 数据类型用于向内存申请空间,创建变量

初识C语言(了解)_#define_02


  • short——短整型,也为short int
  • float——单精度浮点型
#include <stdio.h>
int main()
{ float f=5.6;//部分编译器可能默认5.6为双精度而报错,可改为5.6f以强调单精度。

printf ("%f\n",f);
return 0;
}
  • double——双精度浮点型
#include <stdio.h>
int main()
{
double d = 3.14;//向计算机申请8字节=64比特,用来存放3.14
printf("% lf\n",d);//为了区分单双精度,双精度为lf
return 0;
}
  • 单双精度的结果都为小数点后6位

%d——打印整型(十进制数)

%c——打印字符

%p——以地址形式打印

%——打印十六进制数

每种类型大小

# include <stdio.h>
int main()
{
printf("%d\n", sizeof (char));//1字节大小
printf("%d\n", sizeof(short));//2字节大小
printf("%d\n", sizeof(int ));//4字节大小
printf("%d\n", sizeof(long ));//4或8字节大小,C语言规定:sizeof(long)>=sizeof(int)即可
printf("%d\n", sizeof(long long ));//8字节大小
printf("%d\n", sizeof(float ));//4字节大小
printf("%d\n", sizeof(double));//8字节大小

return 0;

选用合适的数据类型,以便申请合适的储存空间,避免浪费

计算机单位

  • 数据存储是以"字节" (Byte) 为单位,数据传输大多是以"位" (bit,又名"比特") 为单位,一个位就代表一个0或1 (即二进制) 

bit——比特,又称"位", 计算机中每个0或1就是一个位——一个比特位存放一个二进制位 ;

1B (byte,字节) = 8 bit ((bit)) ;

1KiB(Kibibyte,千字节)=1024B= 2^10 B;

1MiB (Mebibyte,兆字节,百万字节,简称"兆") =1024KB= 2^20 B ;

1GiB (Gibibyte,吉字节,十亿字节,又称"千兆") =1024MB= 2^30 B ;

1TiB (Tebibyte,万亿字节,太字节) =1024GB= 2^40 B ;

1PiB (Pebibyte,千万亿字节,拍字节) =1024TB= 2^50 B ;

1EiB (Exbibyte,百亿亿字节,艾字节) =1024PB= 2^60 B ;

1ZiB (Zebibyte,十万亿亿字节,泽字节) = 1024EB= 2^70 B ;

1YiB (Yobibyte,一亿亿亿字节,尧字节) = 1024ZB= 2^80 B ;

换算为1024


进制换算(权重^比例)

123转十进制

123=1^102+2^101+3^100

二进制转十进制

001=1^20=1

010=1^21+0^20=2

011=2+1=3

100=1^22=4

共有23=8种数,即2比特个数

八进制转十进制

八进制数由0-7构成,最大数字为7,不可有380等存在大于7的数,可有370

32=3^8+2^8=26



变量

定义方法

数据类型+变量名=赋值

变量分类

局部变量

定义在{}代码块内的变量,其作用域为局部{}代码块内

全局变量

定义在{}代码块外部的变量,其作用域为整个程序

注意

  • 当局部变量和全局变量同时存在,且变量名都相同时,局部变量优先。
#include <stdio.h>
int a = 100;//全局变量
int main()
{
int a = 5;//局部变量

printf("%d\n", a);
return 0;
}
//输出结果为局部变量5
  • 局部变量名和全局变量名不建议相同,否则容易出bug
  • C语言语法规定,变量要定义在当前代码块的最前面,即用前定义好
#define _CRT_SECURE_NO_WARNINGS
#inclu#define _CRT_SECURE_NO_WARNINGSde <stdio.h>
int main()
{
int num1= 0;
int num2 = 0;
int sum = 0;//用前定义
scanf ("%d%d", &num1, &num2);//scanf为C语言提供的库函数,在部分编译器不可用。在源文件首行加上#define _CRT_SECURE_NO_WARNINGS可解决类似问题
//若为VS编译器,还可以改为有编译器提供的scanf_s(此方法不具有可移植性)
//此外还可以在编译器中提前设置好,以便每次创建源文件时都会有#define _CRT_SECURE_NO_WARNINGS
sum = num1 + num2;
printf("%d\n", sum );
return 0;


变量作用域

代码中所用到的变量不总是有效/有用的,在哪里可以用,哪里即是其作用域。

生命周期

  • 局部变量:进入作用域{}周期开始,出作用域生命结束
  • 全局变量:作用于整个程序。


常量

字面常量

直接写出的值。如3、4

const修饰的常变量

有const修饰后,被修饰的值具有常属性(即将变量固定为一个常量,不可再改变)。

#define定义的标识符常量

#include <stdio.h>
#define max 10//定义标识符时不要忘记给值,否则会出错
int main()
{
int arr[max] ;//此处max已经定义为常量,可以放于【】内
printf("%d\n", max) ;
return 0;
}

枚举常量

枚举关键字——enum

ASCⅡ码

数据在计算机存储时以二进制存储,故每一个符号都有其对应的二进制序列,为表示便捷,将其转换为十进制,这种给给每个元素编号的方式称为ASCⅡ编码,其值为ASCⅡ码值。

ASCⅡ码表

初识C语言(了解)_#include_03

初识C语言(了解)_操作符_04


如a——97 A——65大小写差值为32

符串+转义字符+注释

字符串

由双引号引起的一串字符称为字符串面值,简称字符串。如“hello,world\n”

注:计算字符串长度时\0或0是结束标志,不作为字符串内容。若无结束标志,则会继续打印随机值,直到遇到结束标志0为止。

#include <stdio.h>
int main()
{
char arr1[] = "abc";//此数组隐藏了结束标志\0
char arr2[] = { 'a','b','c' };//此处无结束标志\0 应该加上0或\0
printf("%s\n", arr1);
printf("%s\n", arr2 );
return 0;


转义字符

转变原来的意思

三字母词:??+其他    如??)——>]

转义字符

意义

ASCⅡ码值(十进制)

\?

书写多个?时,防止其被解析为三字母词

063

\\

用于表示一个\防止其被解析为转义序列符

092

\ddd

\十八进制数  ddd表示八进制数,如\130x


\xdd

\x十六进制数  dd表示2个十六进制数,如\x300


\a

响铃(BEL)

007

\b

退格符


\r

回车


\'

表示字符常量‘


#include <stdio.h>
#include <string.h>//strlen的头文件为string
//strlen为计算字符长度
int main()
{
printf ("%d\n", strlen("c:\test\32\test.c"));
//\t为转义字符为一个字符长度
//\32为一个长度 (32为2个八进制数,转换为十进制数为3^8+2=26代表的ASCⅡ码为向右的箭头—>
return 0;
//总长度为13}

注释

  • C语言中为/*  */  缺点为不可嵌套注释,遇到*\即结束
  • c++中为//


语句

选择语句

#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
#include <string.h>
int main()
{
int input = 0;
printf("开始学习计算机\n");
printf("认真学习?(1/0)>:");
scanf("%d",&input);//句子间没有空格的不要打空格,否则会事与愿违。如% d就不行
if (input ==1)
printf("好offer\n");
else
printf("卖洋芋\n");

return 0;
}

循环语句

while 语句

#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
#include <string.h>
int main()
{
int line=0;
printf("加入计算机\n");
while(line<2000)
{
printf("敲一行代码:%d\n",line);
line++;
}

if (line >= 2000)
printf("好offer\n");
return 0;
}

for语句

do----while语句

函数

数组

一组相同类型元素的集合

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

下标从0开始0,1,2,3,4,5,6,7,8,9 如arr[2]=3

#include <stdio.h>
#include <string.h>
int main()
{
const int arr[10] = { 1,2,3,4,5,6,7,8,9,10 };

int i = 0;
while (i < 10)
{
printf("%d\n", arr[i]);
i++;
}
return 0;
}

操作符

算术操作符

%——取模(即取余数)。如a=5%2=1;    a=5/2=2

位(二进制)操作符

&——按位与(同真则真)

#include <stdio.h>
int main()
{
int a = 3;//011=3
int b = 5;//101=5
int c = a & b;//001=1
printf("%d\n", c);
return 0;
}//结果为1

|——按位或(有真则真)

#include <stdio.h>
//#include <string.h>
int main()
{
int a = 3;//011=3
int b = 5;//101=5
int c = a|b;//111=4+2+1=7
printf("%d\n", c);
return 0;
}//结果为7

^——按位异或同假异真/同为0,异为1)

#include <stdio.h>
//#include <string.h>
int main()
{
int a = 3;//011=3
int b = 5;//101=5
int c = a^b;//110=4+2+0=6
printf("%d\n", c);
return 0;
}//结果为6

赋值操作符

  • 一个=为赋值  ;两个==为判断相等
  • 复合赋值符+=,*=,&=,/=,》=,《= ,^=,|=

如:

a=a+10<==>a+ =10

a=a-10<==>a- =10

a=a&2<==>a&  =2

单/双/三目操作符

单目操作符

只有一个操作对象,如:

  • !(逻辑反操作符)——>改变真假
#include <stdio.h>
int main()
{
int a = 10;
printf("%d\n", a);
printf("%d\n", !a);//a=10为真,有!后变为假即0
}
//结果为a=10 !a=0

C语言中0表示假,一切非0表示真

  • -(负值), 
  • &(取地址符)——>有多个变量时,需要取出对应地址来存储变量
  • sizeof操作符——>计算的是变量(括号可省)/数据类型(括号不可省略)所占 空间大小,单位字节。
#include <stdio.h>
int main()
{
int arr[10]={0};//存放10个数组,每个整型int占用4个字节
printf("%d\n", sizeof arr);//arr为变量()可以省略
return 0;
}
//结果为arr的长度4^10=40
  • ~(对一个数的二进制位取反)

双目操作符

有两个操作对象

三目操作符



标签:main,return,字节,int,初识,C语言,了解,printf,include
From: https://blog.51cto.com/u_15906149/5950933

相关文章

  • go语言20小时从入门到精通(一、初识Go语言)
    1.1Go语言介绍1.1.1Go语言是什么2009年11月10日,Go语言正式成为开源编程语言家庭的一员。Go语言(或称Golang)是云计算时代的C语言。Go语言的诞生是为了让程序员有更高的生产......
  • C语言车辆销售系统
    C语言车辆销售系统这三道题基本是一个逻辑,都是我们做一个项目。这个项目可以做到提供一个为销售公司提供方便的系统。为不同身份访问提供不同的服务,经理可以更改额外车辆......
  • C语言《程序设计课程设计》[2022-12]
    C语言《程序设计课程设计》[2022-12]程序设计课程设计说明书一、设计任务与要求《程序设计课程设计》是在完成《C语言程序设计》课程学习后进行的一门专业实践课程,是培......
  • 口全解测试-全方位了解Eolink-三神技超亮点》
    目录​​前言:​​​​神技:​​​​1、【代码生成】(★★★★★)五星推荐​​​​2、一键Swagger搬运(★★★★★)五星推荐​​​​3、eo注释与一键上传全部接口(★★★★★)五星推......
  • 了解模块、导入模块、as定义别名
    一、模块Python模块(Module),是一个python文件,以.py结尾,包含了python对象定义和python语句。模块能定义函数、类和变量,模块里也能包含可执行的代码。1.1导入模块......
  • 浅析C语言预处理
    计算机操作系统属于计算机基础,了解C语言从源文件到可执行文件的被处理过程,有助于认识操作系统,帮助我们理解C语言的某些程序现象。第一部分程序的翻译环境和执行环境翻译环境......
  • c语言中float类型的存储及IEEE规范
    float是浮点型数据类型。float是C语言的基本数据类型中的一种,表示单精度浮点数。C语言规定单精度浮点型在内存占用4个字节,精度为7位,取值范围为:3.4*10^-38~3.4*10......
  • 【C语言】回调函数、嵌套函数的使用、qsort函数、qsort函数声明、qsort代码示例。
     ......
  • 最后一个字符长度(C语言)
    一、题目:给定一个仅包含大小写字母和空格 '' 的字符串,返回其最后一个单词的长度。如果不存在最后一个单词,请返回0 。说明:一个单词是指由字母组成,但不包含任何空格的......
  • Python之threading: 带你了解多线程的强大威力!
    前言什么是多线程多线程是指在一个程序中同时创建和使用多个执行流(thread)来执行不同的任务。这样多个任务就可以同时进行,从而提高程序的执行效率。在python使用多线......