【C语言】入门了解

简介: 【C语言】入门了解

所以知识点到为止,不做详细介绍!


1数据类型



char                       字符数据类型
short                      短整型
int                        整形
long                       长整型
long long                  长长整形
float                      单精度浮点数
double                     双精度浮点数
C语言标准规定: sizeof(long long)> =sizeof(long)> =sizeof(int)


  1. %d-有符号整行整型(十进制)
  2. %c- 打印字符
  3. %f-打印浮点数字-打小数
  4. %p-以地址的形式打印
  5. %x-打印16进制数字
  6. %o--打印8进制
  7. %s-打印字符串
  8. %lf--打印double类型
  9. %u - 无符号整形 -unsigned


注意:存在这么多的类型,其实是为了更加丰富的表达生活中的各种值。

比如:

char name[]   = 'xiaoming' ;

int weight = 120 ;

int age   = 20 ;


2. 变量、常量



生活中的有些值是不变的(比如:圆周率,性别,身份证号码,血型等等)

有些值是可变的(比如:年龄,体重,薪资)。


2.1 定义变量的方法


1.int age = 150;
float weight = 45.5f;
cname = 'xiaoming';


2.2 变量的命名


  • 只能由字母(包括大写和小写)、数字和下划线( _ )组成。
  • 不能以数字开头。
  • 长度不能超过63个字符。
  • 变量名中区分大小写的。
  • 变量名不能使用关键字。


2.3 变量的分类


  • 局部变量
  • 全局变量
1.#include <stdio.h>
int a = 2023;//全局变量
int main()
{
    int b = 2023;//局部变量
    //下面定义的a会不会有问题?
    int a = 2020;//局部变量
    printf("a= %d\n",a );
    return 0;
}


上面的局部变量a变量的定义其实没有什么问题的!

当局部变量和全局变量同名的时候,局部变量优先使用!!


2.4 变量的作用域和生命周期


作用域

作用域( scope )是程序设计概念,通常来说,一段程序代码中所用到的名字并不总是有效 / 可用

的而限定这个名字的可用性的代码范围就是这个名字的作用域。


1. 局部变量的作用域是变量所在的局部范围。就是在创造的{ }之内可以使用

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


生命周期

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

1. 局部变量的生命周期是:进入作用域生命周期开始,出作用域生命周期结束。

2. 全局变量的生命周期是:整个程序的生命周期。


2.5 常量


C语言中的常量和变量的定义的形式有所差异。

C语言中的常量分为以下以下几种:

  • 字面常量
  • const 修饰的常变量
  • #define 定义的标识符常量


枚举常量

#include <stdio.h>
//举例
enum Sex
{
 MALE,
 FEMALE,
 SECRET
};
//括号中的MALE,FEMALE,SECRET是枚举常量
int main()
{
    //字面常量演示
    3.14;//字面常量
    1000;//字面常量
    //const 修饰的常变量
    //const修饰的常变量不能变
    const float a = 3.14f;   //这里的a是const修饰的常变量
    pai = 5.14;//是不能直接修改的!
    //#define的标识符常量 演示
 #define MAX 100
    printf("max = %d\n", MAX);
    //枚举常量演示
    printf("%d\n", MALE);
    return 0;
}


  • 那什么是常变量d0013180b61c47a1af12b9a4869e5182.png


 const 修饰的常变量在C语言中只是在语法层面限制了变量 num 不能直接被改变,但是 num 本质上还是一个变量的,所以叫常变量。


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



3.1 字符串


"hello XMLife.\n"

这种由双引号( Double Quote )引起来的一串字符称为字符串字面值( String Literal ),或者简称字符

串。

注:字符串的结束标志是一个 \0 的转义字符。在计算字符串长度的时候 \0 是结束标志,不算作字符

#include <stdio.h>
//下面代码,打印结果是什么?为什么?(突出'\0'的重要性)
int main()
{
    char arr1[] = "XMLife";
    char arr2[] = {'x', 'm', };
    char arr3[] = {'x', 'm', '\0'};
    printf("%s\n", arr1);
    printf("%s\n", arr2);
    printf("%s\n", arr3);
    return 0;
}


ed8c785f98484dc280358007d9425d77.png


字符串是遇到\0结束的

在arr1里面隐藏着一个\0所以打印了XM

在arr2里并不存在\0,xm后他会继续向后查找,直到遇到\0结束,所以arr2是个随机值

在arr3里,xm后面放着一个\0,所以遇见\0就会结束,打印了xm


4. 数组



数组是有序的元素序列。 [1]  若将有限个类型相同的变量的集合命名,那么这个名称为数组名


4.1 数组定义


int arr [ 10 ] = { 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 10 }; // 定义一个整形数组,最多放 10 个元素


4.2 数组的下标


C语言规定:数组的每个元素都有一个下标

下标是从0开始的。 数组可以通过下标来访问的。

比如:

int arr [ 10 ] = { 0 };

// 如果数组 10 个元素,下标的范围是 0-9

ddd887c7aa624a7993978b38dd51ca7d.png


4.3 数组的使用


#include <stdio.h>
int main()
{
 int i = 0;
 int arr[10] = {1,2,3,4,5,6,7,8,9,10};
 int sz = sizeof(arr)/sizeof(arr[0]);//计算该数组有几个元素
 for(i=0; i<sz; i++)
 {
       printf("%d ", arr[i]);
 }
    return 0;
}


5. 指针



5.1 内存


内存是电脑上特别重要的存储器,计算机中程序的运行都是在内存中进行的 。

所以为了有效的使用内存,就把内存划分成一个个小的内存单元,每个内存单元的大小是 1 个字节 。


为了能够有效的访问到内存的每个单元,就给内存单元进行了编号,这些编号被称为该 内存单元的地址

d0597e280db14313aa90998e37092a5c.png


变量是创建内存中的(在内存中分配空间的),每个内存单元都有地址,所以变量也是有地址的。

取出变量地址如下:

#include <stdio.h>
int main()
{
 int num = 10;
//把num的地址取出来
//这里num的4个字节,每个字节都有地址
//取出的是第一个字节的地址 (较小的地址)
 &num;
 //int* 是个指针变量
 //*是个指针
 //int 代表p指向的num是个int类型
 int* p = &num;
 printf("%p\n", &num);//打印地址,%p是以地址的形式打印
 printf(“%d\n”,*p);//打印*p指向的a
 return 0;
}

  • 那地址如何存储,需要定义指针变量。


int num = 10;

int *p;//p为一个整形指针变量

p = &num ;


指针的使用实例


#include <stdio.h>
int main()
{
 int num = 10;
 int *p = &num;
 *p = 20;
    return 0;
}


目录
相关文章
|
12月前
|
安全 编译器 C语言
C++入门1——从C语言到C++的过渡
C++入门1——从C语言到C++的过渡
183 2
|
10月前
|
存储 NoSQL 编译器
【C语言】指针的神秘探险:从入门到精通的奇幻之旅 !
指针是一个变量,它存储另一个变量的内存地址。换句话说,指针“指向”存储在内存中的某个数据。
307 7
【C语言】指针的神秘探险:从入门到精通的奇幻之旅 !
|
9月前
|
存储 编译器 C语言
【C语言程序设计——入门】C语言入门与基础语法(头歌实践教学平台习题)【合集】
本文档介绍了C语言环境配置和编程任务,主要内容包括: - **C语言环境配置**:详细讲解了在Windows系统上配置C语言开发环境的步骤。 - **第1关:程序改错**:包含任务描述、相关知识(如头文件引用、基本语法规则)、编程要求、测试说明及通关代码。 - **第2关:scanf函数**:涉及`scanf`和`printf`函数的格式与使用方法,提供编程要求、测试说明及通关代码。 文档结构清晰,涵盖从环境搭建到具体编程任务的完整流程,适合初学者学习和实践。
175 4
|
9月前
|
C语言
【C语言程序设计——入门】基本数据类型与表达式(头歌实践教学平台习题)【合集】
这份文档详细介绍了编程任务的多个关卡,涵盖C语言的基础知识和应用。主要内容包括: 1. **目录**:列出所有关卡,如`print函数操作`、`转义字符使用`、`数的向上取整`等。 2. **各关卡的任务描述**:明确每关的具体编程任务,例如使用`printf`函数输出特定字符串、实现向上取整功能等。 3. **相关知识**:提供完成任务所需的背景知识,如格式化输出、算术运算符、关系运算符等。 4. **编程要求**:给出具体的代码编写提示。 5. **测试说明**:包含预期输入输出,帮助验证程序正确性。 6. 文档通过逐步引导学习者掌握C语言的基本语法和常用函数,适合初学者练习编程技能。
225 1
|
12月前
|
存储 Java 编译器
初识C语言1——C语言入门介绍
初识C语言1——C语言入门介绍
141 1
C语言------程设设计入门
这篇文章是C语言程序设计的入门教程,涵盖了C程序的实现过程、VC集成开发环境的使用、基本数据类型的使用、格式控制字符的作用,以及通过示例代码演示了如何使用printf()函数输出不同类型的数据。
C语言------程设设计入门
|
12月前
|
C语言
回溯入门题,数据所有排列方式(c语言)
回溯入门题,数据所有排列方式(c语言)
102 0
|
存储 Java C语言
【C语言入门】初识C语言:掌握编程的基石
【C语言入门】初识C语言:掌握编程的基石
150 4
【C语言入门】初识C语言:掌握编程的基石
|
NoSQL Java 编译器
C语言从入门到精通该怎样学?
持续学习与实践:编程是一门需要不断学习和实践的技能,要保持对新技术和新知识的敏感性,并持续进行编程实践。
189 1
|
存储 Java 程序员
【C语言入门】C语言入门:探索编程世界的基础概念
【C语言入门】C语言入门:探索编程世界的基础概念
273 2