腾讯课堂:c语言从零到精通
1. 从第一个例子开始
#include <stdio.h> int main(void) { printf("hello, qin men \n"); system("pause"); // 请按任意键继续... return 0; } // 开始编译,生成可执行文件exe // 执行程序:1. 调试运行 2. 命令行运行 3. 直接点击执行 // 发布exe:拷贝给用户、上传到网上 // 静态库:在编译的时候使用,A提供了静态库给B,如果这个库不存在,在编译的时候就会出错 // 动态库:使用的时候再调用:A提供了dll给B,只有在exe执行的时候调用dll,如果调用的时候没有这个dll,就会出错 在函数体外的程序执行会出错,必须在函数体(即main函数里)执行程序。
// # 表示预编译符号;include:表示引用某个头文件 #include <stdio.h> // void表示,main函数没有调用参数 int main(void) { /* printf() 、system()是系统已经实现的函数,标准库实现的函数, 用#include引用进来,或者用编译器内建函数代替标准库函数。 可能会出现的问题,编译器的实现不一样,所以函数的结果可能与预期不一致 */ printf("hello, qin men \n"); system("pause"); // 请按任意键继续... return 0; // 如果没有返回值,系统会自动返回0 }
杂项运算符 ? sizeof & 三元
下表列出了 C 语言支持的其他一些重要的运算符,包括 sizeof 和 ? :。
运算符 描述 实例
sizeof() 返回变量的大小。 sizeof(a) 将返回 4,其中 a 是整数。
& 返回变量的地址。 &a; 将给出变量的实际地址。
* 指向一个变量。 *a; 将指向一个变量。
? : 条件表达式 如果条件为真 ? 则值为 X : 否则值为 Y
代码:
#include <stdio.h> int main() { int a = 4; short b; double c; int* ptr; // *指向一个变量 // sizeof()返回变量的大小 printf("a: %lu \n", sizeof(a)); printf("b: %lu \n", sizeof(b)); printf("c: %lu \n", sizeof(c)); // & 返回变量的地址 ptr = &a; printf("a的值是:%d\n", a); printf("*ptr是%d\n", *ptr); }
整数、浮点数、内存
1. 变量、2进制、16进制
// %d表示输出一个整数,整数类型
// %f表示输出一个浮点数,浮点数类型
// %c表示输出一个字符型,'A'
变量类型-概要介绍
整形(有符号/无符号)
浮点
字符
字符串(c与c++不一样)
生活中的进制-10进制
计算机中的进制-2/16进制
0/1: 0000 0010 1111 1111
0,1,2,3,4,5,6,7,8,9,a,b,c,d,e,f(与10进制的对应关系是:0-9对应0-9;A-F对应10-15;)
整数变量和内存
内存大小
32位/64位(地址所表示的空间)
2G/4G
1B(byte/字节) = 8bit(比特/二进位制信息单位)
1KB = 1024B
1M = 1024*1KB
1G = 1024*1MB
int x1 = 1;
unsigned int x2 = 2;
// 输出变量的地址
printf("%p, %p\n", &x1, &x2);
浮点数:范围、长度内存表示
float
32bit
double
64bit
浮点数不再区分signed和unsigned