linuxC编程从入门到精通——变量与数据类型

阅读: 评论:0

linuxC编程从入门到精通——变量与数据类型

linuxC编程从入门到精通——变量与数据类型

常量:不会变化的数据。不能被修改。

1. “hello”、'A'、-10、3.1415926(浮点常量)	2. #define PI 3.1415	【强调】:没有分号结束标记。 【推荐】 定义宏: 定义语法: #define 宏名 宏值3. const int a = 10;	定义语法:const 类型名 变量名 = 变量值。const关键字: 被该关键字修饰的变量,表示为只读变量。

变量:会变化的数据。能被修改。

定义语法:类型名 变量名 = 变量值。(一般方法)变量三要素:类型名、变量名、变量值。	int r = 3;	float s = PI*r*r;(变量值是一个表达式)变量的定义:	int a = 40;变量的声明:	1) int a;	 没有变量值的变量定义 叫做声明。2)extern int a; 添加了关键字 extern。1. 变量定义会开辟内存空间。变量声明不会开辟内存空间。2. 变量要想使用必须有定义。当编译器编译程序时,在变量使用之前,必须要看到变量定义。如果没有看到变量定义,编译器会自动找寻一个变量声明提升成为定义。如果该变量的声明前有 extern 关键字,无法提升。【建议】:定义变量时。尽量不要重名。

标识符:

变量和常量的统称。命名规则:	1. 通常常量使用大写、变量使用小写。大小写严格区分。2. 只能使用字母、数组、下划线(_)命名标识符。且,数字不能开头。 a-z/A-Z/0-9/_int a5ir = 10; okint _34F = 6; okfloat s2_i85c = 5.4;  okint 98ti_54 = 4;  error.3. 禁止使用关键字和系统函数作为标识符名称。  main/system/

sizeof关键字:

不是函数。用来求一个变量、类型的大小。 返回一个 无符号整数。 使用 %u 接收返回值。方法1: sizeof(类型名)	-- sizeof(int)方法2: sizeof(变量名)		--- int a = 20; sizeof(a)【了解】: sizeof 变量名/类型名		举例1: sizeof int举例2: sizeof a

有符号整型:

signed: 有符号 (超级不常用, 通常省略):		int a = 10; a = -7;	int类型:	%d		4 字节			int 名 = 值;short类型:	%hd		2 字节short 名 = 值;		short s1 = 3;long类型:	%ld		4 字节		(windows: 32/64: 4字节; Linux:32位:4字节, 64位:8字节)	long 名 = 值;		long len = 6;long long 类型:%lld		8 字节long long 名= 值;	long long llen = 70;

无符号整型:

unsigned: 无符号 		只表示数据量,而没有方向(没有正负)	unsigned int类型:	%u		4 字节unsigned int 名 = 值;	unsigned int a = 40;		unsigned short类型:	%hu		2 字节unsigned short 名 = 值;		unsigned short s1 = 3;unsigned long类型:	%lu		4 字节 (windows: 32/64: 4字节; Linux:32位:4字节, 64位:8字节)unsigned long 名 = 值;		unsigned long len = 6;unsigned long long 类型:%llu		8 字节unsigned long long 名 = 值;	unsigned long long llen = 70;

char字符类型:1字节

存储一个字符。本质是ASCII码。 ‘A’、‘a’、‘%’、‘#’、‘0’格式匹配符: %c‘A’:65‘a’:97‘0’:48‘n’:10‘’: 0

转义字符:

‘’	将普通字符转为 特殊意。 将特殊字符转为本身意。'n' 和 ‘’

实型(浮点数、小数):

float:	单精度浮点型。		4字节float v1 = 4.345;%f格式匹配符。 默认保留 6 位小数。double:双精度浮点型。		8字节		【默认】double v2 = 5.678;unsigned float v1 = 4.345;	无符号的 float 数据unsigned double v2 = 5.678;	无符号的 float 数据printf("n = %08.3fn", n);输出的含义为:显示8位数(包含小数点), 不足8位用0填充。并且保留3位小数。对第4位做四舍五入。

进制和转换:

十进制转2进制。	--- 除2反向取余法。 【重点】十进制转8进制。	--- 除8反向取余法。十进制转16进制。--- 除16反向取余法。int a = 56;	-- 111000int b = 173;    -- 101011012进制转10进制。2^10 = 10242^9 = 5122^8 = 2562^7 = 1282^6 = 642^5 = 322^4 = 162^3 = 82^2 = 4

8进制:

8进制转10进制。	定义8进制数语法:	056: 零开头,每位数0~7之间。	---- 460124: 				---- 848进制转2进制。按421码将每个八进制位展开。056:5--》 101。 6--》 110  。10111005326:5 --》 101。 3--》 011。 2--》 010。 6--》 1102进制转8进制:1 010 111 010 110:	012726自右向左,每3位一组,按421码转换。高位不足三位补0

16进制:

语法: 以0x开头,每位 取 0-9/A-F/a-fA -- 10B -- 11C -- 12D -- 13E -- 14F -- 15
16 -- 10:0x1A:  16+10 = 260x13F:15+3x16+256 16 -- 2:0x1A:	000110100x13F:	0001001111112 -- 16:0001 0011 1111:		13F自右向左,每4位一组,按8421码转换。高位不足三位补0

总结:

int m = 0x15F4;int n = 345;int var = 010011; // 不允许。 不能给变量直接复制 二进制数据。输出格式:%d %u %o %x %hd %hu %ld %lu %lld %llu %c %f %lf%d %u %x %c %s 

存储知识:

1 bit位  就是一个 二进制位一个字节 1B = 8bit位。 1KB = 1024B1MB = 1024KB1GB = 1024MB1TB = 1024GB

源码反码补码:【了解】

源码:43 -> 	00101011-43 --> 10101011反码:		43 -> 	00101011-43 --> 1010101111010100补码:(现今计算机采用的存储形式)43 -> 	00101011	: 正数不变-43 --> 11010101	: 负数,最高位表符号位, 其余取反+1

43-27 ==> 43 + -27

人为规定: 10000000 --> -128

char 类型:1字节 8个bit位。 数值位有7个。   有符号: -2^7 --- 2^7-1  == -2^(8-1) -- 2(8-1) -1  --> -128 ~ 127无符号: 0 ~ 2^8 -1 -> 0~255不要超出该数据类型的存储范围。short类型:2字节  16bit有符号: -2^15 --- 2^15-1  == -2^(16-1) -- 2(16-1) -1  --> -32768 ~ 32767无符号: 0 ~ 2^8 -1 --> 0~65535		int 类型:4字节			-2^(32-1) -- 2^(32-1)-1有符号:-> -2147483648 ~ 2147483647	无符号:		0~2^32 -1 --> 0~4294967295long类型:4字节有符号:--> -2147483648 ~ 2147483647	无符号:		0~2^32 -1 --> 0~4294967295	longlong 类型:8字节有符号:--> -2^(63) ~ 2^(63)-1	无符号:		--> 0~2^63-1
#include <stdio.h>#define N 1024		
#define EXIT_SUCCESS 0
int main(void)
{int a = 10;		printf("这是一个常量 N:%dn", N);printf("这是一个变量 a:%dn", a);return EXIT_SUCCESS;
}

#include <stdio.h>#define PI 3.1415			int main(void)
{const int r = 3;				// 定义一个只读变量	//圆的面积 = PI x 半径的平方float s = PI * r * r;//圆的周长 = 2 x PI x 半径	float l = 2 * PI * r;printf("圆的周长为:%fn", l);	// 默认显示 6 位小数。printf("圆的面积为:%fn", s);	printf("圆的周长还可以写成:%.2fn", PI * r * r);printf("圆的面积还可以写成:%.2fn", 2 * PI * r);	// 指定保留小数点后保留2位,对第3位进行4舍五入return 0;
}

#include <stdio.h>		int main(void)
{int var = 54;			// 定义一个变量 var, 定义的同时指定初值为 54var = 238;			// 使用变量,给变量var赋新值 238printf("var = %dn", var);	//  使用变量,打印变量var的值到屏幕。return 0;
}

#include <stdio.h>
#define EXIT_SUCCESS 0
int main(void)
{int a = 10;			// 定义有符号整数 a, 给a赋初值为 10short b = 20;		// 定义有符号整数 b, 给a赋初值为 20long c = 30L;		// 定义有符号整数 c, 给a赋初值为 30, 可以简写为 long c = 30;long long d = 40LL;	// 定义有符号整数 d, 给a赋初值为 40, 可以简写为 long long d = 40;printf("sizeof(a)= %dn", sizeof(a));printf("sizeof(b)= %dn", sizeof(b));printf("sizeof(c)= %dn", sizeof(c));printf("sizeof(d)= %dn", sizeof(d));printf("按类型, int 大小为:%dn", sizeof(int));printf("按类型, short 大小为:%dn", sizeof(short));printf("按类型, long 大小为:%dn", sizeof(long));printf("按类型, long long 大小为:%dn", sizeof(long long));// system("pause");return EXIT_SUCCESS;
}

#include <stdio.h>int main(void)
{char ch = 'a';printf("sizeof(ch) = %un", sizeof(ch));printf("%cn", 97);		//字符'a'printf("%cn", 65);		//字符'A'char A = 'A';		// 定义字符变量 A, 初值为 ‘A’char a = 'a';		// 定义字符变量 a, 初值为 ‘a’printf("a = %dn", a);		//字符'a'的ASCII的值97printf("A = %dn", A);		//字符'A'的ASCII的值65printf("A = %cn", 'a' - 32); //小写a转大写Aprintf("a = %cn", 'A' + 32); //大写A转小写ach = ' ';printf("空格ASCII的值:%dn", ch);    		//空格ASCII的值 32printf("'\n'ASCII的值:%dn", 'n');  	//换行符ASCII的值 10printf("字符'\0':%dn", '');  	//字符''的ASCII的值 0printf("字符'0':%dn", '0');  		//字符'0'的ASCII的值 48return 0;
}

#include <stdio.h>int main(void)
{char ch;		// 有符号 char 型数据,取值范围 -128~127//符号位溢出会导致数的正负发生改变ch = 0x7f + 2; 	//因为:0x7f == 0111 1111 == 127,所以 等价于 ch = 127 + 2; printf("%dn", ch);	//	   0111 1111//+2后 1000 0001,这是负数补码,其原码为 1111 1111,结果为-127//最高位的溢出会导致最高位丢失unsigned char ch2;ch2 = 0xff+1; 	//因为:0xff == 255 == 1111 1111,所以 等价于 ch2 = 255 + 1; printf("%un", ch2);//		1111 1111//+1后 10000 0000, char只有8位最高位的溢出,结果为0000 0000,十进制为0ch2 = 0xff + 2; //因为:0xff == 255 == 1111 1111,所以 等价于 ch2 = 255 + 2; printf("%un", ch2);//		1111 1111//+1后 10000 0001, char只有8位最高位的溢出,结果为0000 0001,十进制为1return 0;
}

本文发布于:2024-01-29 04:35:15,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/170647411812734.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:变量   数据类型   入门   linuxC
留言与评论(共有 0 条评论)
   
验证码:

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23