C语言学习(三)
一、数组、循环、判断条件
#include<stdio.h>
int main(){
int a =100;
int b =200;
int i;
int arr [5];
if (a==100){
if (b==200){
printf("a 的值是 100,且 b 的值是 200\n" );
}
printf("a 的值是 100,且 b 的值是 %d \n",b );
}else{
printf("a 的值是 %d \n",a );
} //数组
for(i=0;i<5;i++){
arr[i]=100+i;
}
printf("arr[4] 的值是 %d \n",arr[4]);
return 0;
}
二、枚举:枚举是 C 语言中的一种基本数据类型,它可以让数据更简洁,更易读
案例:如果不用枚举,我们需要使用 #define 来为每个整数定义一个别名:
enum DAY
{
MON=1, TUE, WED, THU, FRI, SAT, SUN
};
没有指定值的枚举元素,其值为前一元素加 1。也就说 spring 的值为 0,summer 的值为 3,autumn 的值为 4,winter 的值为 5
#include <stdio.h>
enum DAY{
M,T,W,TH,F,SA,SU
}; int main()
{
enum DAY day;
day = W;
printf("%d \n",day);
return 0;
}
/*linux socket AF_INET UDP 编程示例,客户端,单进程单线程。*/
#include <cstdio>
#include <arpa/inet.h>
#include <sys/socket.h>
#include <sys/types.h>
#include <unistd.h> int main()
{
int cli_sock = socket(AF_INET, SOCK_DGRAM, 0); //conn_addr 是要连接的服务器地址结构
struct sockaddr_in conn_addr;
conn_addr.sin_family = AF_INET;
conn_addr.sin_port = htons(8345);
//conn_addr.sin_addr.s_addr = inet_addr("127.0.0.1");
//将 inet_addr() 改用 inet_pton() 这个现代的方法,支持 IPV4 和 IPV6
if (inet_pton(AF_INET, "127.0.0.1", &conn_addr.sin_addr) == -1) {
printf("inet_pton error\n");
close(cli_sock);
return 0;
} //serv_addr 是用来存储 recvfrom 中的地址结构
struct sockaddr_in serv_addr;
socklen_t serv_addr_len = sizeof(serv_addr); char c = 1, buf[255];
int num = 0;
while (c < 100) {
sendto(cli_sock, &c, sizeof(c), 0,
(struct sockaddr*)&conn_addr,
sizeof(conn_addr) );
int n = recvfrom(cli_sock, buf, sizeof(buf), 0,
(struct sockaddr*)&serv_addr,
&serv_addr_len ); if (n > 0) {
num++;
//将 inet_ntoa() 改用 inet_ntop() 这个现代方法,支持 IPV4 和 IPV6
//printf("recv data from %s : %d %c\n", inet_ntoa(serv_addr.sin_addr), ntohs(serv_addr.sin_port), buf[0]);
//INET_ADDRSTRLEN 是标识 IPV4 地址展现字符串的大小常量,INET6_ADDRSTRLEN是 IPV6 的
char serv_ip[INET_ADDRSTRLEN];
if (inet_ntop(AF_INET, &serv_addr.sin_addr, serv_ip, sizeof(serv_ip)) == NULL) {
printf("inet_ntop error\n");
close(cli_sock);
return 0;
}
printf("recv data from %s : %d %c\n", serv_ip, ntohs(serv_addr.sin_port), buf[0]);
}
++c;
}
c='\0';
sendto(cli_sock, &c, sizeof(c), 0,
(struct sockaddr*)&conn_addr,
sizeof(conn_addr) );
close(cli_sock);
printf("\nnum : %d\n", num);
return 0;
}
C语言学习(三)的更多相关文章
- Dart语言学习(三)Dart数值型
一.类型 数值型有 num,int, double num a = ; a = 12.5; print(a); print(a.runtimeType); ; // b = 20.5; print( ...
- Go语言学习——三分钟看透iota
源起枚举 最近做需求时,有一个需要枚举的场景,大概有10+个枚举类型,不愿意像定义一个开关那样敷衍的写成 const ( SwitchOff = 0 SwitchOn = 1 ) 显得不够精致~ 于是 ...
- PHP语言学习之php-fpm 三种运行模式
本文主要向大家介绍了PHP语言学习之php-fpm 三种运行模式,通过具体的内容向大家展示,希望对大家学习php语言有所帮助. php-fpm配置 配置文件:php-fpm.conf 开启慢日志功能的 ...
- Go语言学习笔记三: 常量
Go语言学习笔记三: 常量 定义常量 常量就是在声明后不能再修改的量. const x int = 100 const y string = "abc" const z = &qu ...
- Swift语言学习(三)基础操作符
操作符是用于检测.更改或者组合值的特殊符号或短语.例如,加法操作符 (+) 将两个数字加到一起 (如 let i = 1 + 2).更复杂的例子包括逻辑与操作符 && (如 if en ...
- C语言学习 第七次作业总结
C语言学习 第七次作业总结 数组可以分为数组和多下标数组(在传统的国内C语言书本中,将其称为二/多维数组). 数组名称 在之前的课程中,大家应该都有印象,对于int a这样的定义,会为变量 a 声明一 ...
- 技能收获与C语言学习
你有什么技能比大多人(超过90%以上)更好? 我会的东西很多,喜欢的东西太多,但是很遗憾广而不专,会而不精.学了很多东西我都是为了娱乐,因为以前我们那里过于强调学习,很多爱好也都被扼杀在摇篮里.我觉得 ...
- HTML语言学习笔记(会更新)
# HTML语言学习笔记(会更新) 一个html文件是由一系列的元素和标签组成的. 标签: 1.<html></html> 表示该文件为超文本标记语言(HTML)编写的.成对出 ...
- 20155229-付钰涵-分析自我技能延展到c语言学习状况
我的小技能 我记得幼儿园时表演的舞蹈,也记得从水彩到素描的学习,还记得小学和初中获得的钢琴省级奖项. 舞蹈止于一年级,绘画止于三年级,钢琴从学前班到高一那十年的时间里有过断续. 03年-04年的那个冬 ...
- linux 下C语言学习路线
UNIX/Linux下C语言的学习路线.一.工具篇“公欲善其事,必先利其器”.编程是一门实践性很强的工作,在你以后的学习或工作中,你将常常会与以下工具打交道, 下面列出学习C语言编程常常用到的软件和工 ...
随机推荐
- 在模仿中精进数据分析与可视化01——颗粒物浓度时空变化趋势(Mann–Kendall Test)
本文是在模仿中精进数据分析与可视化系列的第一期--颗粒物浓度时空变化趋势(Mann–Kendall Test),主要目的是参考其他作品模仿学习进而提高数据分析与可视化的能力,如果有问题和建议,欢迎 ...
- Java必学MySQL数据库应用场景
Java教程分享Java必学之MySQL数据库应用场景,在当前的后台开发中,MySQL应用非常普遍,企业在选拔Java人才时也会考察求职者诸如性能优化.高可用性.备份.集群.负载均衡.读写分离等问题. ...
- ES2015+ 常用新特性一口气看个够
ES2015 也叫 ES6,区别只是一个是以发布的年份来命名,一个是以版本号来命名 从那以后组织每年都会发布一个新版本,根据这个规则,ES2016 === ES7... ES2020 === ES11 ...
- redHat6设置ip地址
产生需求的原因: 最近新安装了redhat6,可是在相互ping的过程中发现redhat6的并没有配置静态的ip地址,于是我尝试使用windows的方式去配置,可效果并不如意,于是如何在redhat6 ...
- VisualEffectGraph概述
Visual Effect Graph 由来: Visual Effect Graph 是2018.3 以后版本,出的新的粒子特效技术.它是用显卡渲染特效,区别于传统的Patical system 的 ...
- 在vue项目中使用scss,以及vscode适配scss语法(解决使用scss语法编辑器报错)
项目搭建好之后 安装sass 依赖包 npm install --save-dev sass-loader //sass-loader依赖于node-sass npm install --save-d ...
- webapi发布在iis之后报错Http 403.14 error
服务器是 Windows Server 2008 R2 Enterprise 网上找了很多说是修改webconfig.试过之后没有效果,另外报错了. 最后才找到是因为webapi发布时选择的应用程序的 ...
- 关于使用Draw.io画数据库E-R图的说明
背景简介 E-R图也称实体-联系图(Entity Relationship Diagram),提供了表示实体类型.属性和联系的方法,用来描述现实世界的概念模型. diagrams.net是用于构建图表 ...
- A Simple Math Problem 矩阵打水题
A Simple Math Problem Lele now is thinking about a simple function f(x).If x < 10 f(x) = x.If x & ...
- 实现opcache加速php7.X
一.环境准备 操作系统:Centos8.3.2011 软件:PHP7.2.24 二.安装过程 1.安装软件 [20:03:29 root@centos8 src]#dnf -y install php ...