初步认识C语言(二)

这篇具有很好参考价值的文章主要介绍了初步认识C语言(二)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

7. 选择语句

 8. 循环语句

 9. 函数

10.数组

10.1 数组定义

10.2 数组的下标

 10.3 数组的使用

 11. 操作符

12. 常见关键字

12.1 关键字 typedef

12.2 关键字static

 12.2.1 修饰局部变量

 12.2.2 修饰全局变量

 12.2.3 修饰函数

​编辑 13. #define 定义常量和宏

 14. 指针

14.1 内存

 14.2 指针变量的大小

 15. 结构体


7. 选择语句

例如:

如果你好好学习,校招时就可能拿一个好 offer ,走上人生巅峰。
如果你不学习,毕业等于失业,回家种田。
这就是选择
#include <stdio.h>
int main()
{
   int coding = 0;
   printf("你会去敲代码吗?(选择1 or 0):>");
   scanf("%d", &coding);
   if(coding == 1)
  {
      printf("坚持,你会有好offer\n");
  }
   else
  {
      printf("放弃,回家种田\n");
  }
   return 0;
}

打印结果如下: 

初步认识C语言(二),c语言,算法,开发语言

初步认识C语言(二),c语言,算法,开发语言

 8. 循环语句

有些事必须一直做,比如我日复一日的讲课,比如大家,日复一日的学习。
C语言中如何实现循环呢?
while语句-讲解
for语句
do ... while语句
//while循环的实例
#include <stdio.h>
int main()
{
	printf("好好学习\n");
	int line = 0;
	while (line <= 20000)
	{
		line++;
		printf("我要继续努力敲代码\n");
	}
	if (line > 20000)
		printf("好offer\n");
	return 0;
}
//for循环实例
#include<stdio.h>
int main()
{
	printf("好好学习\n");
	int line = 0;
	for (; line <= 20000; line++)
	{
		printf("我要继续努力敲代码\n");
	}
	if(line>20000)
		printf("好offer\n");
	return 0;
}
//do while循环实例
#include<stdio.h>
int main()
{
	printf("好好学习\n");
	int line = 0;
	do  
	{
		line++;
		printf("我要继续努力敲代码\n");
	} while (line <= 20000);
	if (line > 20000)
			printf("好offer\n");
	return 0;
}

打印结果如下: 

初步认识C语言(二),c语言,算法,开发语言

 9. 函数

#include <stdio.h>
int main()
{
    int num1 = 0;
   int num2 = 0;
    int sum = 0;
    printf("输入两个操作数:>");
    scanf("%d %d", &num1, &num2);
    sum = num1 + num2;
    printf("sum = %d\n", sum);
    return 0;
}
上述代码,写成函数如下:
#include <stdio.h>
int Add(int x, int y)
{
   int z = x+y;
   return z;
}
int main()
{
    int num1 = 0;
   int num2 = 0;
    int sum = 0;
    printf("输入两个操作数:>");
    scanf("%d %d", &num1, &num2);
    sum = Add(num1, num2);
    printf("sum = %d\n", sum);
    return 0;
}

打印结果如下: 

初步认识C语言(二),c语言,算法,开发语言

函数特点: 简化代码,代码复用。

10.数组

要存储 1-10 的数字,怎么存储?
C 语言中给了数组的定义:一组相同类型元素的集合。

10.1 数组定义

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

10.2 数组的下标

C 语言规定:数组的每个元素都有一个下标,下标是从 0 开始的。
数组可以通过下标来访问的。
比如:
int arr[10] = {0};
//如果数组10个元素,下标的范围是0-9

初步认识C语言(二),c语言,算法,开发语言

 10.3 数组的使用

#include <stdio.h>
int main()
{
 int i = 0;
 int arr[10] = {1,2,3,4,5,6,7,8,9,10};
 for(i=0; i<10; i++)
 {
       printf("%d ", arr[i]);
 }
 printf("\n");
    return 0;
}

打印结果如下: 

初步认识C语言(二),c语言,算法,开发语言

 11. 操作符

算术操作符
+ - * / %
移位操作符
>> <<
位操作符
& ^ |
赋值操作符
= += -= *= /= &= ^=  |=    >>=   <<=
单目操作符
!           逻辑反操作
-           负值
+           正值
&           取地址
sizeof      操作数的类型长度(以字节为单位)
~           对一个数的二进制按位取反
--          前置、后置--
++          前置、后置++
*           间接访问操作符(解引用操作符)
(类型)       强制类型转换
关系操作符
>
>=
<
<=
!=   用于测试“不相等”
==      用于测试“相等”
逻辑操作符
&&     逻辑与
||          逻辑或
条件操作符
exp1 ? exp2 : exp3
逗号表达式
exp1, exp2, exp3, …expN
下标引用、函数调用和结构成员
[] () . ->

12. 常见关键字

auto  break   case  char  const   continue  default  do   double else  enum   
extern float  for   goto  if   int   long  register    return   short  signed
sizeof   static struct  switch  typedef union  unsigned   void  volatile  while
C语言提供了丰富的关键字,这些关键字都是语言本身预先设定好的,用户自己是不能创造关键字的。

12.1 关键字 typedef

typedef 顾名思义是类型定义,这里应该理解为类型重命名。

比如:
//将unsigned int 重命名为uint_32, 所以uint_32也是一个类型名
typedef unsigned int uint_32;
int main()
{
    //观察num1和num2,这两个变量的类型是一样的
    unsigned int num1 = 0;
    uint_32 num2 = 0;
    return 0;
}

12.2 关键字static

C 语言中:
static 是用来修饰变量和函数的
1. 修饰局部变量 - 称为静态局部变量
2. 修饰全局变量 - 称为静态全局变量
3. 修饰函数 - 称为静态函数
 12.2.1 修饰局部变量
//代码1
#include <stdio.h>
void test()
{
    int i = 0;
    i++;
    printf("%d ", i);
}
int main()
{
 int i = 0;
    for(i=0; i<10; i++)
   {
        test();
   }
    return 0;
}

打印结果如下: 

初步认识C语言(二),c语言,算法,开发语言

//代码2
#include <stdio.h>
void test()
{
    //static修饰局部变量
    static int i = 0;
    i++;
    printf("%d ", i);
}
int main()
{
    int i = 0;
    for(i=0; i<10; i++)
   {
        test();
   }
    return 0;
}

打印结果如下: 

初步认识C语言(二),c语言,算法,开发语言

 12.2.2 修饰全局变量
//代码1
#include<stdio.h>
//add.c
int g_val = 2023;
//test.c
extern int g_val = 2023;
int main()
{
	printf("%d\n", g_val);
	return 0;
}
//代码2
#include<stdio.h>
//add.c
static int g_val = 2023;
//test.c
extern static int g_val = 2023;
int main()
{
    printf("%d\n", g_val);
    return 0;
}

 代码1正常,代码2在编译的时候会出现连接性错误。

代码1运行结果如下:

初步认识C语言(二),c语言,算法,开发语言

 代码2编译时出现连接性错误:

初步认识C语言(二),c语言,算法,开发语言

初步认识C语言(二),c语言,算法,开发语言

 结论:

一个全局变量被static修饰,使得这个全局变量只能在本源文件内使用,不能在其他源文件内使用。
 12.2.3 修饰函数
//代码1
#include<stdio.h>
//add.c
int Add(int x, int y)
{
    return x+y;
}
//test.c
extern int Add(int x, int y)
int main()
{
    printf("%d\n", Add(2, 3));
    return 0;
}

代码1打印结果如下:

初步认识C语言(二),c语言,算法,开发语言

//代码2
#include<stdio.h>
//add.c
static int Add(int x, int y)
{
    return x+y;
}
//test.c
extern static int Add(int x, int y)
int main()
{
    printf("%d\n", Add(2, 3));
    return 0;
}

代码2编译时出现连接性错误:

初步认识C语言(二),c语言,算法,开发语言

 13. #define 定义常量和宏

#include<stdio.h>
//define定义标识符常量
#define MAX 1000
//define定义宏
#define ADD(x, y) ((x)+(y))
#include <stdio.h>
int main()
{
    int sum = ADD(2, 3);
    printf("sum = %d\n", sum);
    
    sum = 10*ADD(2, 3);
    printf("sum = %d\n", sum);
    
    return 0;
}

打印结果如下:

初步认识C语言(二),c语言,算法,开发语言

 14. 指针

14.1 内存

内存是电脑上特别重要的存储器,计算机中程序的运行都是在内存中进行的 。
所以为了有效的使用内存,就把内存划分成一个个小的内存单元,每个内存单元的大小是 1 个节
为了能够有效的访问到内存的每个单元,就给内存单元进行了编号,这些编号被称为该 内存单元地

 初步认识C语言(二),c语言,算法,开发语言

变量是创建内存中的(在内存中分配空间的),每个内存单元都有地址,所以变量也是地址的。
取出变量地址如下:
#include <stdio.h>
int main()
{
 int num = 10;
 &num;//取出num的地址
    //注:这里num的4个字节,每个字节都有地址,取出的是第一个字节的地址(较小的地址)
 printf("%p\n", &num);//打印地址,%p是以地址的形式打印
 return 0;
}

打印结果如下:

初步认识C语言(二),c语言,算法,开发语言

 初步认识C语言(二),c语言,算法,开发语言

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

int num = 10;
int *p;//p为一个整形指针变量
p = &num;
指针的使用实例:
#include <stdio.h>
int main()
{
 int num = 10;
 int *p = &num;
 *p = 20;
    return 0;
}

初步认识C语言(二),c语言,算法,开发语言

 以整形指针举例,可以推广到其他类型

#include <stdio.h>
int main()
{
 char ch = 'w';
 char* pc = &ch;
 *pc = 'q';
 printf("%c\n", ch);
    return 0;
}

打印结果如下:

初步认识C语言(二),c语言,算法,开发语言

 14.2 指针变量的大小

#include <stdio.h>
//指针变量的大小取决于地址的大小
//32位平台下地址是32个bit位(即4个字节)
//64位平台下地址是64个bit位(即8个字节)
int main()
{
    printf("%d\n", sizeof(char *));
    printf("%d\n", sizeof(short *));
    printf("%d\n", sizeof(int *));
    printf("%d\n", sizeof(double *));
    return 0;
}

打印结果如下:

32位平台下

初步认识C语言(二),c语言,算法,开发语言 64位平台下

初步认识C语言(二),c语言,算法,开发语言

 结论:指针大小在32位平台是4个字节,64位平台是8个字节。

 15. 结构体

结构体是C语言中特别重要的知识点,结构体使得C语言有能力描述复杂类型。
比如描述学生,学生包含: 名字+年龄+性别+学号 这几项信息。
这里只能使用结构体来描述了。
例如:
struct Stu
{
    char name[20];//名字
    int age;      //年龄
    char sex[5];  //性别
    char id[15]; //学号
};
结构体的初始化:
#include <stdio.h>
struct Stu
{
	char name[20];//名字
	int age; //年龄
	char sex[5]; //性别
	char id[15]; //学号
};

int main()
{
	//打印结构体信息
	struct Stu s = { "张三", 20, "男", "20180101" };
	//.为结构成员访问操作符
	printf("name = %s age = %d sex = %s id = %s\n", s.name, s.age, s.sex, s.id);
	//->操作符
	struct Stu* ps = &s;
	printf("name = %s age = %d sex = %s id = %s\n", ps->name, ps->age, ps->sex, ps -> id);
	return 0;
}

打印结果如下:

初步认识C语言(二),c语言,算法,开发语言文章来源地址https://www.toymoban.com/news/detail-523093.html

到了这里,关于初步认识C语言(二)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • kafka的初步认识

    Kafka的增长很快。财富500强企业中超过三分之一使用卡夫卡。这些公司包括十大旅游公司,十大银行中的七家,十大保险公司中的八家,十大电信公司中的九家,等等。LinkedIn,微软(Microsoft)和Netflix每天用Kafka处理一兆(1,000,000,000,000)的信息。Kafka用于实时数据流,收集大

    2024年02月09日
    浏览(34)
  • 初步认识Linux系统编程

    Linux是一种自由和开放源代码的操作系统,它以良好的稳定性、强大的安全性和广泛的应用领域而著称。Linux系统编程是指在Linux操作系统下开发应用程序的过程,其中包括与硬件交互、系统调用以及与其他程序进行通信等。 在开始学习Linux系统编程之前,我们需要先安装Lin

    2024年02月16日
    浏览(27)
  • 初步认识Java

           Java 语言源于 1991 年 4 月,Sun 公司 James Gosling 博士 领导的绿色计划(Green Project) 开始启动,此计划最初的目标是开发一种能够在各种消费性电子产品(如机顶盒、冰箱、收音机等)上运行的程序架构。这个就是Java的前身: Oak (得名与Java创始人James Gosling办公室外的一棵橡

    2024年04月27日
    浏览(24)
  • 【HUAWEI】初步认识 ENSP

    目录 路由器:   ​编辑 交换机: 无线局域网:AC AP  防火墙: 终端:PC   MCS   Client   Server   STA   Cellphone      其它设备:云    帧中继交换机      HUB 设备连线:设备中的各种连接线         路由器(Router)是连接两个或多个网络的硬件设备,在网络间起网关

    2024年02月04日
    浏览(29)
  • 【SpringCloud】初步认识微服务

    随着互联网行业的发展,对服务的要求也越来越高,服务架构也从单体架构逐渐演变为现在流行的微服务架构。那么什么是微服务呢? 微服务最早由Martin Fowler与James Lewis于2014年共同提出,微服务架构风格是一种使用一套小服务来开发单个应用的方式途径,每个服务运行在自

    2024年02月05日
    浏览(31)
  • Java——面向对象的初步认识

    目录 一.什么是面向对象 二.面向对象与面向过程 1. 传统洗衣服过程(面向过程) 2. 现代洗衣服过程(面向对象) Java是一门纯面向对象的语言(Object Oriented Program,简称OOP),在面向对象的世界里,一切皆为对象。 面向对象是解决问题的一种思想,主要依靠对象之间的交互完成

    2024年04月13日
    浏览(31)
  • 对数据结构的初步认识

    牛牛开始更新 数据结构 的知识了.本专栏后续会分享用c语言实现 顺序表 , 链表 , 二叉树 , 栈 和 队列 , 排序 算法等相关知识,欢迎友友们互相学习,可以私信互相讨论哦! 🎈个人主页:🎈 :✨✨✨初阶牛✨✨✨ 🐻推荐专栏: 🍔🍟🌯 c语言初阶 🔑个人信条: 🌵知行合一 🍉本篇

    2024年02月01日
    浏览(43)
  • 【Linux】初步认识Linux系统

    主要作用是管理好硬件设备,并为用户和应用程序提供一个简单的接口,以便于使用。 作为中间人, 连接硬件和软件 桌面操作系统 Windows macOs Linux 服务器操作系统 Linux Windows Server 嵌入式操作系统 Linux 移动设备操作系统 ios Android Unix —— Minix —— Linux 狭义的Linux:Linux ker

    2024年02月09日
    浏览(31)
  • 低代码系列——初步认识低代码

    低代码系列目录 一、初步认识低代码 二、低代码是什么 三、低代码平台的概念和分类 01.无代码开发平台 02.低代码应用平台(LCAP) 03.多重体验开发平台(MXDP) 04.智能业务流程管理套件(iBPMS) 四、低代码的能力指标 五、低代码平台jnpf 表单 报表 流程 权限 本篇主要介绍 低代码是

    2024年02月12日
    浏览(30)
  • C++类与对象(1)—初步认识

    目录 一、面向过程和面向对象 二、类 1、定义 2、类的两种定义方式  3、访问限定符 4、命名规范化  5、类的实例化 6、计算类对象的大小 7、存储方式 三、this指针  1、定义  2、存储位置 3、辨析  四、封装好处 下一篇:构造函数析构函数 C语言是 面向过程 的, 关注 的是

    2024年02月05日
    浏览(26)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包