天天看点

c语言学习笔记<4>1.3变量与内存

昨天干活没有试一试,今天把昨天也补上

1.2.4.2运算例子

先演示最简单的加减和乘法

#include<stdio.h>
int main()
{
   int cookies=5;
   int cookie_calories=125;
   int total_eaten=0;
   int eaten=2;
   cookies=cookies-eaten;  //变量的减法
   total_eaten=total_eaten+eaten; //变量的加法
   printf("\ni have eaten %d cookies.there are %d cookies left",eaten,cookies);
   eaten=3;
   cookies=cookies-eaten;
   total_eaten=total_eaten+eaten;
   printf("\nI have eaten %d more.Now there are %d cookies left\n",eaten,cookies);
   printf("\nTotal energy consumed is %d calories.\n",total_eaten*cookie_calories);  
   //变量的乘法,在printf()函数中输出时候可以进行运算
   return 0;
}
           
c语言学习笔记<4>1.3变量与内存

再之后便是除法与取模运算

#include<stdio.h>
int main()
{
	int cookies=45;
	int children=7;
	int cookies_per_child=0;
	int cookies_left_over=0;
	cookies_per_child=cookies/children;
	printf("You have %d childern and %d cookies %d",children,cookies);
	printf("Give each child %d cookies.\n",cookies_per_child);
	cookies_left_over=cookies%children;
	printf("There are %d cookies left over.\n",cookies_left_over);
	return 0; 
}
           
c语言学习笔记<4>1.3变量与内存

在我自己百度了解了一下,了解到在c语言中,除法有一些特殊的运算法则

在除法运算中,如果不同号结果就是负数,如果同号结果就是正数

-45/7=45/-7=-6
           

模运算就是取余数,而模数运算不管操作是否同号结果总是与左边的符号相同

45%-7=3
-45%7=-3
           

1.3变量与内存

1.3.1带符号的整型变量

前面介绍了整数变量,但是并没有深入计算机去研究他的内存,于是书上,下一部分就是关于变量的内存,每次声明一个变量的时候,编译器都会给他分配一个足够大的内存空间,来保存这个变量。相同类型的不同变量总是占据了相同大小的内存,但是不同类型的变量就不一样了

类型名称 字节数
signed char 1
short int 2
int 4
long int 4
long long int 8

以上的变量的极限范围,可以使用头文件<limits.h>中确定编译器中储存的极限值

1.3.2无符号的整型变量

有些数据有正有负,对于每一个带符号整数的类型都对应的一个无符号的整数,它们占用的内存空间内与有符号的整型相同,但是要在前面加上关键字unsigned。

类型名称 字节数
unsigned char 1
unsign short int/unsign short 2
unsign int 4
unsign long int 4
unsgin long long int 8

使用无符号类型的数因为所占空间是一定的,所以提供的数是一定的,但是由于没有符号,所以可以表示比有符号数大一倍

1.3.3指定整数常量

整数的变量有这么多类型,常量也有着不同的类型

但是常量的声明规则与变量有所不同(以下以100为例)

类型名称 命名格式
int 100
long in 12345678L
long long int 123456789LL
unsign int 100U
unsign long 999999999UL
unsign long long 1234123412341234ULL
负数 参考整数,在前面加负号

1.3.3.1.十六进制

十六进制常量,同样要和十进制一样,使用十六进制时候要记得在前面加上识别符号0x或者0X

举几个栗子

0xFFFF=65535,0Xdead=57005,0xafL=175
           

可以看到在第三个中最后加上了L,表示的便是long类型

1.3.3.2.八进制

八进制数以8为基底,数字可以有1-7,在八进制数之前需要加0进行识别,但是八进制现在逐渐被时代所淘汰,八进制起源于36位字时代,那时候一个字是3位的组合,因此36位二进制可以写为12个八进制数。(以上来源于百度)

014=12
           

在c语言中一定要谨慎使用0开头的常量,否则十进制的数看你会被计算机识别为八进制的数

1.3.3.3.默认类型

后缀 十进制常量 八或十六进制常量

1.int

2.long

3.long long

1.int

2.unsigned int

3.long

4.unsigned long

5.long long

6.unsigned long

U

1.int

2.long

long long

1. unsigned int

2.unsigned long

3.unsigned long long

L

1.long

2.long long

1.long

2.unsigned long

3. long long

4.unsigned long long

UL

1.unsigned long

2.unsigned long long

1. unsigned long

2.unsigned long long

LL 1. long long

1.long long

2.unsigned long long

ULL 1.unsigned long long 1.unsigned long long

打个表格不容易,这个markdown格式用起来还是不顺手,今天往后还学了点,但是写不完了,以后截图不截图代码了,代码直接在代码块上输入,省的自己占空间,影响观看。

继续阅读