一些零碎的知识点:
- #include< > 引用的是编译器的类库路径里面的头文件。一般是引用自带的一些头文件,如: stdio.h、conio.h、string.h、stdlib.h 等等。
- #include" " 引用的是你程序目录的相对路径中的头文件。一般是用来引用自己写的一些头文件。如果使用 #include" " ,它是会先在你项目的当前目录查找是否有对应头文件,如果没有,它还是会在对应的引用目录里面查找对应的头文件。
- 当定义的全局变量和局部变量名字相同时,局部变量优先。如:
int a=100;
int main()
{
int a=10;
printf(“%d\n”,a);
}//会输出a=10
- 定义float类型的数:
float a=1.5f;
printf(“%f\n”,a);
- 高版本VS编辑器在第一行加上#define _CRT_SECURE_NO_WARNINGS
- 字符串:字符串的结束标志是一个转义字符’\0’,在用strlen()计算字符串的长度时遇到’\0’就停止(长度不算’\0’),在用printf()打印时遇到’\0’就不再继续打印。
char arr[]=”abc”; //’a’,’b’,’c’,’\0’
char arr1[]={‘a’,’b’,’c’,’\0’}; //和上面的形式等价
char arr2[]={‘a’,’b’,’c’}; //长度为随机值
sizeof(arr1); //值为4*1 byte
sizeof(arr2); //值为3*1
strlen(arr1); //值为3*1
strlen(arr2); //值为一个随机数
//sizeof() 是一个判断数据类型或者表达式长度的运算符
//strlen()是一个库函数
- 转义字符:
(1)/ddd ddd表示1~3个八进制数,/xdd dd表示2个十六进制数。
printf(“%c”,’\32’); // /32是两个八进制数。以%c的格式输出,这里意思是打印32这个八进制数所对应的十进制数26所对应的ASCII码值,即为’→’。
(2)printf(“%s\n”,strlen(“c:\test\32\test.c”)); //总长度为13,三段下划线所标字符长度均为1。
(3)printf(“%c\n”,’\’’); //打印一个单引号
(4)printf(“%s\n”,”\””); //打印一个字符串,字符串的内容为一个”
(5)'0'和0和'\0'和NULL的区别:
a.字符'0':char c = '0';它的ASCII码实际上是48。
b.字符'\0' :ASCII码为0,表示一个字符串结束的标志。这是转义字符。
c.整数0 :ASCII码为0,字符表示为空字符NULL;数值表示为0。
- sizeof()用于计算变量或类型所占内存空间大小(单位是byte),参数可以是变量名也可以是变量类型。
(1)int a=0;
sizeof(a); //合法 sizeof a; //合法
sizeof (int); //合法 sizeof int; //非法
(2)sizeof()计算数组大小
int arr[10]={0};
sizeof(int [10]); //计算数组类型,大小为40
sizeof(int [5]); //大小为20
(3)short a=0; int b=10;
printf(“%d\n”,sizeof(a=b+5)); //赋值过后a仍然为short类型,sizeof(a=b+5)大小为2,打印2
printf(“%d\n”,a); //在sizeof()中s的值不会发生变化,仍然是0,所以打印0
- 整数在计算机中以补码的形式存储:正数的原码、反码、补码相同,负数的原码、反码、补码不同。原码(除最高位)按位取反得到反码,反码最低位加1得到补码。 如果赋值时赋的是16进制数(0x),则该数已经为此变量的补码。
10. 各种类型变量所占内存大小:
(1)char——1 byte
(2)short——2 byte
(3)int——4 byte
(4)long——4/8 byte
(5)long long——8 byte
(6)float——4 byte
(7)double——8 byte
变量存储的是字符的ASCII码值,用不同类型的变量存储所占内存大小不一样。