栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

初识c语言01

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

初识c语言01

目录

1什么是c语言?

c语言标准:

2第一个C语言程序

3数据类型

3变量与常量

变量的分类

变量使用

变量作用域与生命周期

常量

4字符串 转义字符 注释

5注释


1什么是c语言?

语言~

人和人交流:中文,英文,日语

人和计算机交流: 计算机语言(c/c++/java/python)

c语言是一种通用的计算机语言,广泛用于底层开发

每一种语言都有各自的缺陷

c语言也能写软件,但更擅长底层开发

c语言标准:

二进制-->汇编语言-->B语言-->C语言
10001000 ---> ADD(助记符)
计算机科学家
每个厂商会对c语言进行定制
c语言就出现了国际标准
ANSI C
K&&R
C89/C90/C99

test.c
test.h
怎么运行起来的?
从test.c------------------------------->>>test.exe
编译器
VS2019 集成开发环境(编辑器,编译器,连接器.调试器)
集成的是MSVC编译器
主流编译器有Clang、GCC、WIN-TC、SUBLIME、MSVC、Turbo C等

xxx.c 源文件
xxx.h 头文件
理论上可以写中文,但是不建议,VS对英文更支持

运行代码 Ctrl+F5
fn 辅助功能键
按F10 直接跳到main函数第一行开始执行

2第一个C语言程序
#include 
int main()
{
   printf("hello bitn");
   printf("he hen");
   return 0;
}
//解释:
//main函数是程序的入口
//一个工程中main函数(也叫主函数)有且仅有一个
void main()
{

}
//c99之前main函数才这么写,现在已经没人这么写了

main()
{

}
//非常差的代码风格,没有返回值.没有函数类型

所谓语法,就是规定了代码的书写规则

3数据类型

写代码是为了解决问题

char        //字符数据类型
short       //短整型 short int
int         //整形
long        //长整型
long long   //更长的整形
float       //单精度浮点数
double      //双精度浮点数 精度比float更高
//C语言有没有字符串类型?

31.45 
3.145 * 10^1
//所以叫浮点数

为什么会这么多类型呢?
生活中本来就这么的类型
存在这么多的类型,其实是为了更加丰富的表达生活中的各种值

#include

int main()

{

       int age = 20;//age这个变量的创建其实是要在内存中开辟空间的

       //%d 打印一个10进制的整数

       //size of计算结果是字节 byte

       printf("%dn", sizeof(char));

       printf("%dn", sizeof(short));

       printf("%dn", sizeof(int));

       printf("%dn", sizeof(long));

       printf("%dn", sizeof(long long));

       printf("%dn", sizeof(float));

       printf("%dn", sizeof(double));

       printf("%dn", sizeof(long double));

       return 0;

}

1
2
4
4
8
4
8
8

short age比int age 空间利用率更高
一个人年龄不会超过4位数
c语言只规定
sizeof(long)>=sizeof(int)

字符使用单引号引起来

3变量与常量

变量创建方式
类型 变量名
变量在创建时不初始化是一种不好的代码风格
一个局部变量不初始化的时候,它的值是随机的
int age = 0;

变量的分类

局部变量

{} 就是一个代码块
在代码块内部定义的变量的就是局部变量

全局变量

在代码块外部定义的变量的就是全局变量

#include 
int global = 2019;//全局变量
int main()
{
   int local = 2018;//局部变量
   printf("global = %dn", global);
   return 0;
}

局部变量和全局变量名字冲突的情况下,局部变量优先
尽量不要相同

#include 
int global = 2019;//全局变量
int main()
{
   printf("global = %dn", global);
   int local = 2018;//局部变量
   return 0;
}
//打印的是2019 局部变量还没定义,自然先使用早就定义好的全局变量

变量使用
int main()

{

       //2个整数相加

       int num1 = 0;

       int num2 = 0;

       //scanf 是c语言提供的输入函数

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

       //&取地址

       //scanf_s是vs编译器自己提供的,不是c标准提供的

       int sum = num1 + num2;

       printf("%dn", sum);

       return 0;

}

int sum在后面在一些老的编译器可能无法编译通过
c99标准有一个规定
变量要创建在当前代码块最前面
c99之后的语法支持:变量在哪使用就在哪里定义

变量作用域与生命周期

作用域

  1. 局部变量的作用域是变量所在的局部范围。
  2. 全局变量的作用域是整个工程。

生命周期

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

  1. 局部变量的生命周期是:进入作用域生命周期开始,出作用域生命周期结束。
  2. 全局变量的生命周期是:整个程序的生命周期。
  3. 程序的生命周期与main函数生命周期相同
  4. 难以通过代码演示,生命周期描述的是一个时间段
int g = 10;

void test()

{

       printf("test::g:%dn", g);

}

int main()

{

       printf("g:%dn", g);

       test();

       int a = 10;

       {

               int b = 10;

               printf("%dn", b);

               printf("g:%dn", g);



       }

       //b的作用域结束

       //printf("%dn", b);

       return 0;

}


常量

1.字面常量
字符常量,常数...
2.cons修饰的常变量:
具备某种常属性,无法被修改
const int num=10;
虽然不能修改,但本质上还是一个变量

int main()

{

       const int n = 100;

       //int arr[n] = { 0 };

       //报错 应输入常量表达式

       //c99标准中 支持变长数组,允许变量来指定数组大小

       //vs不支持c99标准

       return 0;

}

3.define定义的标识符常量
习惯大写,约定俗成的

4.枚举常量
枚举--一一列举
有些值适合列举,性别
有些不适合,工资

enum Sex

{

       //枚举这种类型的可能取值-- 就是枚举常量

       MALE,

       FEMALE,

       SECRET

};

int main()

{

       printf("%dn", MALE);

       printf("%dn", FEMALE);

       printf("%dn", SECRET);

       return 0;

}

结果为
0
1
2

MALE的值不可以修改

4字符串 转义字符 注释

字符与字符串
''
""
c语言没有字符串类型
字符串的末尾隐藏一个''
''是字符串的结束标志

arr2中没有

输出结果:
abc
abc烫烫烫烫烫烫烫烫烫烫??迍鴒


'' 与数值0是等价的

strlen求字符串长度,遇到''就停止,计算结果不包含''本身

#include 

int main()

{

       //可以把字符串放在字符数组中

       char arr1[] = "abc";

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

       printf("%sn", arr1);

       printf("%sn", arr2);

       printf("%dn", strlen(arr1));

       printf("%dn", strlen(arr2));

       return 0;

}

strlen计算结果为
3
15
数完abc 后面有什么不知道
15是随机值
strlen求arr2长度时,遇到''才停止
''只是结束标志

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

此时的'0'不是'' 字符串结束标志
所以strlen求出来依旧是随机值
arr1里是4个字符
arr2里不止4个字符

转义字符

n就是一个转义字符
也是转义字符
转义--转变原来的意思

??) 在某些编译器中就被视作为三字母词
被理解成] 右方括号
现在的编译器基本不支持三字母词了
用? 防止??)被解析为三字母词

printf("aaaa");
触发电脑蜂鸣声
t 制表符
制表符的缩进程度可以手动设置
在文本编辑器里

ddd
130
把八进制的130转换成十进制
130 ---> 0* 8^0+3 * 8^1+1 * 8^2
64+24 -->88
88作为ASCII值 就是X

字符的存储
由于只能储存二进制
给每一个字符都编码
ASCII表


0的ASCII是48
a-->97
有些字符在控制台无法打印出来
xdd

int main()

{

       printf("%c",'x30');

       return 0;

}

打印结果为0

       printf("%dn", strlen("c:test628test.c"));

一道笔试题
结果是14
t 62 t 都是一个字符
c后面隐藏了''

5注释

//是c99后引入的 也是c++的注释风格
/* c的注释风格 缺陷:不支持嵌套注释
代码复杂最好加上注释

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/330027.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号