20150329数据类型

Posted wzg31796

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了20150329数据类型相关的知识,希望对你有一定的参考价值。

一.

1.#include 将制定文件拷贝到当前文件,当做文本文件解析


2.“”  现在当前目录查找,如果没找到再去系统目录下查找,<>号只去系统目录下查找。


3.#include既可以在文件开头,也可以在函数中任意位置,任意位置都可以包含其他文件


4.main函数可以return也可以不return,如果return,则之后所有代码都不会再执行;

》普通函数必须return,如果不return不会报错,但会有垃圾结果


5.system调用的程序,如果不加start则会等待当前程序执行完成之后再执行后面程序,如果加了start则不等待,异步执行(同时执行);start后不能带路径,如果要带路径必须先进入目录


6.变量存储在内存中,当遇到变量相关的加减操作时,是在寄存器中操作,所以&取地址符只能操作在内存中的数据,例:&10;10是在寄存器中,没有地址一说

7.const的值不能直接修改,可以通过内存间接修改

8.c语言能操作内存,不能操作寄存器

9.低位在低字节,高位在高字节,如果低位在高字节,cpu寻址从低位寻址,在高字节就牺牲了效率,在低字节就能直接找到所要的字节

10.库函数<limits.h>
float的极限库函数为<float.h>——FLT_MAX、FLT_MIN
int 和long int在32位以上的机器是4个字节大小,嵌入式的场合16位机器是2个字节大小,和short相同


int a=INT_MAX;  int b=INT_MIN;
long a1=LONG_MAX long b1=LONG_MIN
printf("%d,%d",a,a1,b,b1);  //2147483647,-2147483647,2147483647,-2147483647;说明long和int极限值相同


unsigned int 极大值大于int,但是不能表示负数


11.int a1=10;  //十进制10
int a2=010; //八进制
int a3=0x10; //十六进制
int a4=0101u; //u无符号整数
int a5=0x102l; //l长整数
int a6=0x103ll; //long long 整数


12.int num=-1;
unsigned int data=4294967295u;
int num1=4294967295u;
unsigned int data1=-1;


printf("%d",num);   //-1
printf("%u",num);   //4294967295
printf("%d",num1);   //-1
printf("%u",num1);    //4294967295
printf("%u",data);    //4294967295
printf("%d",data);    //-1
printf("%u",data1);   //4294967295
printf("%d",data1);   //-1


二.转义字符

1.getchar();  获取一个字符,回车也算一个字符

char ch=getchar();

2.putchar(); 输出一个字符


3.要使用sleep()函数要包含头文件<windows.h>


4.转义字符表


5.用程序打开系统应用注意事项:

路径中有\\,还要多加一个转意\\才能生效

#include <stdio.h>

void main() 

	//系统是64位,需要在(x86)前面补充空格才能生效
	system("\\"C:\\\\Program Files (x86)\\\\Tencent\\\\QQ\\\\Bin\\\\QQScLauncher.exe\\"");

	system("pause");


四.变量内存cpu原理

1.变量赋值都是在cpu寄存器内完成,而不是在内存


六.常量分析

1.define定义的常量不能加,加了就是一起替换

2.define是真正的常量,用const定义的常量在某些情况下可以修改,而define不能


3.c语言只能操作内存,不能操作寄存器


七.变量交换时空复杂度

1.为了节约内存,可以不创建新的变量进行变量交换,节省了空间

a=a+b;

b=a-b;

a=a-b;


2.上面方法可能会出现数据越界,也可以用位运算符实现

a=a^b; //a=15;b=5

b=a^b; //b=10;a=15

a=a^b; //a=5;b=15


九.内存单位与位数

1.任何进制,不允许出现大于等于进制的数字


2.0代表八进制


十.printf与数据类型

1.printf不会自动进行数据类型转换,例:

下面程序会输出意想不到的结果,原因就是printf不会将数据自动转换

#include <stdio.h>

void main() 

	float f1 = 10.9;

	printf("%d\\n", f1);<span style="white-space:pre">	</span>//-107374182

	system("pause");

十一.数据类型的差别

1.数据的大小不一样,解析方式不一样


2.int num=10;printf("%d",sizeof(num));  //1   输出结果为1而不是4


以上是关于20150329数据类型的主要内容,如果未能解决你的问题,请参考以下文章

数据结构-基数排序

Javascript-基本类型

js的数据类型引出的问题

如何使用 MNIST 在 tensorflow 中减少权重位或更改为较低位的类型?

VB 处理扫描类型的tif图片时保存时出现灰色图

C语言中long转换成int是将低位给int吗