一.初识C语言(1)

本文介绍了C语言的基本语法结构,包括#include预处理指令,main函数,以及return语句。讨论了数据类型如char、int、float和double的使用,并展示了如何打印不同类型的变量。文章还涵盖了库函数printf的运用,变量和常量的概念,以及全局变量和局部变量的作用域和生命周期。最后,提到了枚举常量和各种格式说明符的应用。
摘要由CSDN通过智能技术生成

前言:我自己学习C语言也有一小段时间了,却最近才了解到博客这个东西(居然以前注册了一个账号),同时也是在视频老师的课程里知道了,在上课学习之后写一篇总结博客对知识巩固十分有好处。下面就是我整理往期的学习记录和笔记,在巩固自身的同时也希望能够帮助到其他初学的朋友们。话不多说,正文开始!

基本语法结构:


#include <stdio.h>-----包含(include)一个叫stdio.h的文件
int main()-----有且只有一个main函数
{
...------在这里完成任务
return 0;-----返回0
}

相关注解:

main:主函数---程序入口 int:整型 int main:main函数调用后返回一个整型值

//:表注释,后面的内容不会被计算机执行

\n:表示换行,会让光标跳到下一行

Ctrl+Fn+f5运行程序


  1. 库函数

printf()-----print function 打印函数(格式化输出函数)

它是一个库函数,即存放在函数库中的函数。简单来说就是C语言自身提供的函数,提供的函数自然不是你的,不是你的东西我们就要去引用、包含(include)一下。而printf函数则是包含在一个叫做stdio.h的头文件中。

我们这样去引用它 #include <stdio.h>

stdio.h---standard input output.header---标准输入输出头文件(在使用标准输入、输出函数是需要引用stdio.h该头文件)

-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --

  1. 数据类型

数据类型

char //字符数据类型

short //短整型

int //整型

long //长整型

long long //更长的整型

float //单精度浮点型

double //双精度浮点型

说明符① (该符号表示在文章结尾有对应注释)

%d---打印整型

%c---打印字符

%f---打印浮点数(打印小数)

%lf---打印双精度浮点数

%p---打印地址

%s---打印字符串

%x---打印十六进制数字

-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --

char:

应用:打印一个字母A


#include <sdtio.h>
int main()
{
char ch = 'A';//向内存申请一块空间叫ch的空间用来存放A;字符要用单引号引住:'A'
printf("%c\n",ch);//直接记住这个打印的格式,这就是这个函数的使用方法
//""以内的东西会被打印出来,打印什么呢,打印的是ch里面的内容,这个内容会替换掉%c
return 0;
}

运行结果:A

-- -- -- -- -- -- -- -- -- --

int:

应用:打印年龄


#include <stdio.h>
int main()
{
int age = 20;
printf("%d\n",age);//%d————打印整型十进制数据
return 0;
}

运行结果:20

-- -- -- -- -- -- -- -- -- --

float、double:

应用:打印小数


#include <stdio.h>
int main()
{
float f = 5.0;
printf("%f\n",f);
return 0;
}

#include <stdio.h>
int main()
{
double d = 3.14;
printf("%lf\n",d);
return 0;
}

运行结果:5.0

运行结果:3.14

-- -- -- -- -- -- -- -- -- -- -- -- -- -- --

计算类型创建的变量向内存申请的空间


#include <stdio.h>
int main()
{
printf("%d\n",sizeof(char));//sizeof——可计算大小,是一个关键字
printf("%d\n",sizeof(short));
printf("%d\n",sizeof(int));
printf("%d\n",sizeof(long));
printf("%d\n",sizeof(long long));
printf("%d\n",sizeof(float));
printf("%d\n",sizeof(double));
return 0;
}

运行结果:

1

2

4

4

8

4

8

这些表示的是变量的大小,单位是字节。即char类型的变量大小是一个字节,short类型的变量大小是两个字节,int是四个字节,以此类推。

-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --

  1. 变量、常量

变量

先看例子:

int age = 20;

float weight = 45.5f;

char ch = 'w';

即:类型+变量名+赋一个值

-- -- -- -- -- -- -- -- -- --

全局变量、局部变量


#include <stdio.h>
int num2=20;//全局变量————定义在代码块({})之外的变量————int global
int main()
{
int num1 = 10;//局部变量————定义在代码块({})内部的变量————int local
return 0;
}

-- -- -- -- -- -- -- -- -- --


#include <stdio.h>
int a =100;
int main()
{
int a = 10;
printf("%d\n",a);
return 0;
}

运行结果:10

结论:

  • 局部变量和全局变量的名字建议不要相同,容易误会,产生bug

  • 当局部变量和全局变量名字相同时,局部变量优先

-- -- -- -- -- -- -- -- -- -- -- -- -- -- --

变量的作用域和生命周期

作用域

作用域(scope),程序设计概念,通常来说,一段程序代码中所用到的名字并不总是有效的/可用的,而限定这个名字的可用性的代码范围就是这个名字的作用域。(哪里可以用,哪里就是这个变量的作用域)

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

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


#include <stdio.h>
int main()
{
   {
    int num = 0;
   }
printf("num=%d\n",num);//这个变量定义在内部大括号内,所以它(num)的作用域就是它所在的大括号,此时输出会报错
return 0;
}

下面这两种写法可运行


#include <stdio.h>
int main()
{
   {
    int num = 0;
    printf("num=%d\n",num);
   }

return 0;
}

#include <stdio.h>
int main()
{
int num = 0;
   {
    printf("num=%d\n",num);
   }

return 0;
}
生命周期

变量的生命周期指的是变量创建到变量销毁之间的一个时间段

  • 局部变量:进入作用域生命周期开始,出作用域生命周期结束

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

-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --

常量

字面常量


#include <stdio.h>
int main()
{
3;//字面常量
4;
return 0;
}

-- -- -- -- -- -- -- -- -- --

const修饰的常变量


#include <stdio.h>
int mian()
{
const int num = 4;//const————常属性————带有常量的属性,const修饰的常变量(num)本质还是变量
return 0;
}

-- -- -- -- -- -- -- -- -- --

#define定义的标识符常量


#include <stdio.h>
#define MAX 10
//把10定义成MAX,以后输入MAX就等于10
int main()
{
int arr[MAX] = {0};//int arr[]=...是数组,方括号中只能填常量,不能把上面学的常变量放进去
//数组内容后面再详说
printf("%d\n",MAX);
return 0;
}

运行结果:10

-- -- -- -- -- -- -- -- -- --

枚举常量

枚举:一一列举


#include <stdio.h>
enum Sex
{
MALE,
FEMALE,
SECRET
}://MALE,FEMALE,SECRET————枚举常量
int main()
{
printf("%d\n",MALE);//0
每个枚举常量对应一个整型数字,枚举常量的值默认从0开始
printf("%d\n",FEMALE);//1
printf("%d\n",SECRET);//2
return 0;
}

运行结果:

0

1

2

-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --

①更加详细的说明符介绍

说明符(specifier)

对应数据类型

描述

d / i

int

输出类型为有符号的十进制整数,i 是老式写法

o

unsigned int

输出类型为无符号八进制整数(没有前导 0)

u

unsigned int

输出类型为无符号十进制整数

x / X

unsigned int

输出类型为无符号十六进制整数,x 对应的是 abcdef,X 对应的是 ABCDEF(没有前导 0x 或者 0X)

f / lf

double

输出类型为十进制表示的浮点数,默认精度为6(lf 在 C99 开始加入标准,意思和 f 相同)

e / E

double

输出类型为科学计数法表示的数,此处 "e" 的大小写代表在输出时用的 “e” 的大小写,默认浮点数精度为6

g

double

根据数值不同自动选择 %f 或 %e,%e 格式在指数小于-4或指数大于等于精度时用使用

G

double

根据数值不同自动选择 %f 或 %E,%E 格式在指数小于-4或指数大于等于精度时用使用

c

char

输出类型为字符型。可以把输入的数字按照ASCII码相应转换为对应的字符

s

char *

输出类型为字符串。输出字符串中的字符直至遇到字符串中的空字符(字符串以 '\0‘ 结尾,这个 '\0' 即空字符)或者已打印了由精度指定的字符数

p

void *

以16进制形式输出指针

%

不转换参数

不进行转换,输出字符‘%’(百分号)本身

n

int *

到此字符之前为止,一共输出的字符个数,不输出文本

计算机最小的单位叫bit(比特位),8个比特位就是一个byte(字节),1024个字节就是kb(千字节)

bit——比特位

byte——字节(8个bit)

kb——千字节(1024个byte)

mb——兆字节(1024个kb,以此内推)

gb——千兆字节,吉字节

tb——万亿字节,太字节

pb——千万亿字节,拍字节

eb——百亿亿字节,艾字节

zb——十万亿亿字节,泽字节

yb——一亿亿亿字节,尧(yao)字节

bb——一千亿亿亿字节,珀(bo)字节

nb——一百万亿亿亿字节,诺字节

db——十亿亿亿亿字节,刀字节

到这里本次的博客就结束了,希望我的文章能够给一起学习的朋友一点帮助。由于是第一次写,不足之处还望读者海涵,若在阅读中发现有问题或者严重错误的地方还望告知,我会认真学习并及时修改更正,谢谢。

评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

世长老

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

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

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

打赏作者

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

抵扣说明:

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

余额充值