1.基本类型的大小
2.sizeof计算变量时可以不用括号,计算类型必须用括号
int a = 10;
sizeof a; //可以
sizeof int; //不可以
sizeof(int); //可以
3.字符串
char arr[] = "abc"; //数组里存放了'a'、'b'、'c'、'/0'四个字符,最后一个结束标志不会算在字符串长度中
4.转义字符占一个长度
strlen(“c:\test\test.txt”); //输出14
转义字符:\32 32是两个八进制数,将32转为十进制数后对应的asc码代表的字符
\x32 有x表示32是两个十六进制数
5.移位 *** 作符<< >>,是整体向左移动或向右移动
int a = 1;
int b = a << 1; //将a整体向左移一位后得到的数赋给b,但a自身不改变
6.取反运算符,二进制按位取反 ~
int a = 0;
int b = ~a; //b输出为-1
因为:
0000000... a的机器数
取反后:
11111111... b的机器数,第一位表明b是负数,而负数是以补码形式存在计算机中,输出的b为原码,所以b输出为-1
7.后++是先算a再+1:
int a = 10;
int b = a++; //b输出10,a输出11
8.可以宏定义一个函数:
#define MAX(X, Y) (X>Y?X:Y)
int a = 10;
int b = 20;
int max = MAX(a, b); //输出20
9.一个内存单元是一个字节
int a = 10;
printf("%p", &a); //%p专门打印地址的格式
10.32位机的一个地址有4个字节大小,所以指针变量的大小都是4个字节。而64位机的地址是8个字节大小
11.
struct Book
{
char name[20];
int num;
}
struct Book b1 = {"设计书", 55};
b1.name = "C语言"; //错误,因为name是字符数组
strcpy(b1.name, "C语言"); //用字符串拷贝函数
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)