c语言不同类型变量用什么表示什么作用,C语言数据类型及变量整理

数据类型

获取int的字节数大小方法

printf("int bytes:%d",sizeof(int));

列表整理

55054c345347450bd6e153c7ccdf846e.png

Int 与 long int的区别

早期的C平台是16位int系统,int用二字节表示,范围是-32768~+32767;long是long int的简写,用4字节表示,范围是-2147483648~+2147483647。显然在早期平台下long能表示的整数范围要比int大得多。而时下的平台流行的是32位int系统,即4字节系统,int与long在这样的系统下已经没有区别了,它们都是4字节带符号整数,表数范围都是-2147483648~+2147483647。

数据溢出

当变量大于类型的最大值或者小于类型的最小值时,该变量的值会进行跳转,如最大值加一则是最小值。

#include

voidmain(){char min=-128-1;char max=127+1;

printf("min-1=%d",min); //输出: 127

printf("max+1=%d",max); //输出: -128

}

进制

int i=99; /*十进制*/

int i=07; /*八进制*/

int i=0x04; /*十六进制*/unsignedint i=60u; /*无符号整数*/

long int i=60l; /*长整数*/unsignedlong int i=60ul; /*无符号长整数*/

静态变量与函数

只用于本文件(当前点C文件)的变量或函数要全部使用static关键字声明

静态变量

0、静态全局变量仅对当前文件可见,其他文件不可访问,其他文件可以定义与其同名的变量,两者互不影响,不可用extern实现夸文件访问

1、静态变量会自动赋有初值0,而普通变量编译器不会自动赋初值

2、局部静态变量放置在数据区,所以不会因函数的消失而死亡,但寄生于函数之上。全局静态变量与全局变量类似。

3、静态变量重复定义时,局部静态变量优先级高,但只作用于局部

#include

static int i;//全局静态变量

voidfun1(){static int i;//局部静态变量

printf("%d",i);//0-9(局部)

i++;

}voidmain(){intx;for(x=0;x<10;x++) fun1();

printf("---%d",i);//0(全局)

}

静态函数

0、在函数的返回类型前加上static,就是静态函数

1、静态函数只能在声明它的文件中可见,其他文件不能引用该函数

2、不同的文件可以使用相同名字的静态函数,互不影响

枚举

enumEx{

D0,D1,D2,D3//0,1,2,3

};enumEx{

D0=100,D1,D2,D3 //100,101,102,103

}ee;enumEx{

D0,D1=200,D2,D3 //0,200,201,202

}ee;

printf("%d

",D2);

结构体

声明

方法1:

struct结构体名

{

成员列表

};struct 结构体名 变量1,变量2;

方法2

struct结构体名

{

成员列表

}变量1,变量2;

方法3

struct{

成员列表

}变量1,变量2;

方法4

typedef struct{

成员列表;

}结构体别名;

结构体别名 变量1,变量2;

初始化

方法1

struct{

成员列表

}变量1={成员1值,成员2值,成员3值……};

方法2

memset(&结构体变量名,0,sizeof(结构体变量名)); //将所有全部变量清零

引用(使用)成员:

结构体变量

struct结构体名 变量1,变量2;

变量1.成员名

结构体指针变量

struct 结构体名 *变量1;

变量1->成员名

C文件间共享变量

extern

extern是计算机语言中的一个关键字,可置于变量或者函数前,以表示变量或者函数的定义在别的文件中。提示编译器遇到此变量或函数时,在其它模块中寻找其定义,另外,extern也可用来进行链接指定。

可以经extern写在头文件中,变量的定义写在任意一个点C文件(如main.c)中,此后只要包含该头文件夹即可实现变量的共享使用

举个栗子:

C1.h,声明函数c1fun()

#ifndef _C1_H_

#define _C1_H_

void c1fun(char *strx);

#endif

C1.c,实现函数c1fun()

#include#include"c1.h"

char *wu;

void c1fun(char *strx){

wu=strx;

}

Main.c,调用函数c1fun(),并读取外部变量wu的值

#include #include "c1.h"

extern char *wu;

voidmain(){

c1fun("123456");

printf("===:%s",wu);//输出:123456

}

#define

针对不改变的量,可以在头文件中声明,在其他c文件中包含即可使用

如c1.h中:

#define DONG "dongxiaodong"

Mian.c中:

#include"c1.h"……

printf("===:%s",DONG);

……

宏定义的使用

#define的使用

宏定义常量

#define DONG '2' //字符

#define DONG "is str" //字符串

#define DONG 12 //数字

#define DONG 13.36 //浮点数

宏定义范围

#define P 123 ……#undef P

typedef的使用

宏定义之类型重命名

typedef unsigned char u8;

宏定义之类型重命名对比

#include

#define ch1 char*typedefchar*ch2;voidmain(){

ch1 a,b;//char *a,b;

ch2 c,d;//char *c,*d;//输出: --8,1,8,8--

printf("--%d,%d,%d,%d--",sizeof(a),sizeof(b),sizeof(c),sizeof(d));

}

带参数的宏定义

#include

#define Max(x,y) ((x>y)?x:y)

#define Add(x,y) (x+y);

voidmain(){int i=Max(10,2);int ii=Add(2,1) //此处无分号printf("max:%d,add:%d",i,ii);//max:10,add:3

}

参考:

https://blog.csdn.net/kuniqiw/article/details/84495732

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/574862.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

python求第n个质数_找到第n个质数:麻木

我试图用埃拉霍斯特内斯的筛子找到第n个质数。是的&#xff0c;我看到了类似的帖子&#xff0c;但是我对这段代码有一个问题。一旦找到第n个素数&#xff0c;我就停止算法。我写的是&#xff1a;def nth_prime(n):limit 10**2pn 1 #keeps track of how many prime numbers we…

python中浮点数能用乘法吗_简单讲解Python中的数字类型及基本的数学计算

Python有四种类型的数字:1.整型 a = 2 print a 2.长整型 b = 123456789 print b 3.浮点数 c = 3.2E2 print c 4.复数 复数为实数的推广,它使任一多项式都有根。复数当中有个“虚数单位”j,它是-1的一个平方根。任一复数都可表达为x+yj,其中x及y皆为实数,分别称为复数之“实…

c语言设计通讯录管理程序,C语言程序的设计学生通讯录管理系统方案.docx

include ustdio.hH include "stdlib.h” include "string.h" include "conio.h” include Mstdlib.hu ^define null 0 struct record{char namc[20];char phone[20J;char adress[40J;char postcodeflO];char c_mail[30];}sludcnt[500];struct LinkList{str…

*在通配符及正则表达式中的差别

*在通配符和正则表达式中有其不一样的地方&#xff0c;在通配符中*可以匹配任意的0个或多个字符&#xff0c;而在正则表达式中他是重复之前的一个或者多个字符&#xff0c;不能独立使用的。比如通配符可以用*来匹配任意字符&#xff0c;而正则表达式不行&#xff0c;他只匹配任…

python主成分分析实验报告_python进行主成分分析

数据&#xff1a;序号x1x2x3x414025202101.553031203135042504.518051203.59506101.512507401194082704136092803.51160101703960111803.514401213023050132201.51720141601.53560152202.514301614022020172202141018401100192011260201202200数据标准化&#xff1a;x1x2x3x40-…

c语言可以编制出功能复杂的程序,2018级《C语言程序设计》复习题及答案(5页)-原创力文档...

2014 C2014 C级《 语言程序设计》复习题及答案级《 语言程序设计》复习题及答案一、单项选择题一、单项选择题1 C (B )1、以下不是 C 语言的特点的是 (B )、以下不是 语言的特点的是A CA C、 语言简洁、紧凑、 语言简洁、紧凑BB、 能够编制出功能复杂的程序、 能够编制出功能复…

通知:即日起本博客暂停更新,请移步至yanxin8.com获取最新文章

通知&#xff1a;即日起本博客暂停更新&#xff0c;请移步至yanxin8.com与博主交流及获取最新文章 转载于:https://www.cnblogs.com/iplus/p/4467089.html

python修饰器原理_Python修饰器的函数式编程

Python的修饰器的英文名叫Decorator&#xff0c;当你看到这个英文名的时候&#xff0c;你可能会把其跟Design Pattern里的Decorator搞混了&#xff0c;其实这是完全不同的两个东西。虽然好像&#xff0c;他们要干的事都很相似——都是想要对一个已有的模块做一些“修饰工作”&a…

电影俱乐部c语言程序,C语言课程设计___电影俱乐部程序设计

《C语言课程设计___电影俱乐部程序设计》由会员分享&#xff0c;可在线阅读&#xff0c;更多相关《C语言课程设计___电影俱乐部程序设计(22页珍藏版)》请在人人文库网上搜索。1、学 院: 专 业&#xff1a; 姓 名&#xff1a; 学 号&#xff1a;指导老师&#xff1a; 前 言 C语言…

[JavaScript] 函数同名问题

存在同名函数时&#xff0c;最后的函数会覆盖掉以前的同名函数。 1 var x 1,2 y z 0;3 function add(n) {4 return n n 1;5 }6 y add(x);7 function add(n) {8 return n n 3;9 } 10 z add(x); 11 console.log(x);//x值未变1 12 console.log(y…

湖北汽车工业学院c语言程序设计 汽车零部件采购管理程序,湖北汽车工业学院c语言课程设计实验报告(采购信息管理系统).docx...

湖北汽车工业学院c语言课程设计实验报告(采购信息管理系统)C语言课程设计  商品销售信息管理系统  #include  #include  #include  #include  structproduct//定义商品数据结构  {  intnum;//商品编号  charproductname[20];//商品名称  floatprice;//商品…

通信系统概论_现代通信系统概论 第一章 概述(1)

2020年&#xff0c;又开始上一门新课&#xff01;&#xff01;&#xff01;喜欢挑战&#xff01;让同学们开阔知识是本课程的主要目的&#xff01;本课程讲解导航、遥控遥测等军用尖端技术和数字电话、广播电视、综合信息网、多媒体宽带网等现代民用技术。通信在过去分为模拟通…

安装CentOS6.2操作系统

原创作品&#xff0c;出自 “深蓝的blog” 博客&#xff0c;欢迎转载&#xff0c;转载时请务必注明出处&#xff0c;否则追究版权法律责任。 深蓝的blog&#xff1a;http://blog.csdn.net/huangyanlong/article/details/40131523 说明&#xff1a;因为之前有相关安装文章能够查…

c语言100阶乘的代码,求10000的阶乘(c语言代码实现)

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼/*程序功能&#xff1a;计算一个正整数n的阶乘&#xff0c;目前最大能运算10000的阶乘&#xff0c;可秒杀。程序意义&#xff1a;加强自己对于大数的处理。说明&#xff1a;此程序对乘法和除法还未做任何优化&#xff0c;如果用上位…

perl学习之:函数总结

一、进程处理函数 1、进程启动函数函数名 eval 调用语法 eval(string) 解说 将string看作Perl语句执行。正确执行后&#xff0c;系统变量$为空串&#xff0c;如果有错误&#xff0c;$中为错误信息。 例子 $print "print (\"hello,world\\n\");";eval ($pr…

jsp做看板_如何使用看板做敏捷开发

在软件开发实践和互联网的发展中&#xff0c;一直有新的工作方法论不断涌出&#xff0c;有不少的先行者在积极地探索着。敏捷方法和精益方法正是近十几年来&#xff0c;从这波潮流中涌现的最精彩夺目的两项成果。敏捷方法和精益方法的大伞&#xff0c;覆盖多种软件开发方法学&a…

在用c语言写代码是这么找出错误,写代码(C语言)常见粗心小错误

打码(C语言)常见粗心小错误标签(空格分隔)&#xff1a; 博客自我介绍本人学院 (http://sdcs.sysu.edu.cn/) 欢迎访问本人学号 16340213目录##1.前言小萌新们是不是经常打完码之发现程序运行达不到自己的效果&#xff0c;然后自己用大脑运行的时候发现完全没有问题&#xff0c;然…

Analyzer报表结果行

隐藏结果&#xff08;统计&#xff09;行 &#xff08;注&#xff1a;在Analyzer设置只是临时起作用&#xff0c;如果要使设置一直生效&#xff0c;则要通过Query Designer进行设置&#xff09; 显示多个值&#xff1a;如果结果只是由一条记录汇总得来的&#xff0c;则在该列上…

jeecg输入中文查询导表为空_简单查询

语法1.sql以 ; 结尾2.sql不区分关键字大小写3.输入符号时候只能使用英文4.列名不加引号基本查询语句1. select 列名,列名from 表名;2. select *from 表名;3. select 列名 as 列名重命名, 列名 as 列名重命名2from 表名;4. select distinct 列名from 表名;注意事项&#xff1a; …

code128条码c语言,C#生成code128条形码的方法

本文实例讲述了物流条形码的C#实现方法&#xff0c;分享一下供大家参考。具体实现方法如下&#xff1a;主要功能代码如下&#xff1a;using System;using System.Collections.Generic;using System.Data;using System.Drawing;namespace Code{class BarCode{public class Code1…