直接编译html
gcc main.c a.out
指定可执行文件名linux
gcc main.c -o main main
提示全部的警告信息git
gcc -Wall main.c
查看预处理以后、编译以前的程序github
gcc -E main.c
rand()编程
/* rand()生成的随机数是介于0~RAND_MAX之间的整数,不一样平台上RAND_MAX的值可能不同。 */ #include <stdlib.h> rand()%upper_bound
用srand函数指定Seed来生成随机数数组
/* time函数获得的是距离1970年1月1日00:00:00的秒数 NULL表示空指针 */ #include <stdlib.h> #include <time.h> srand(time(NULL));
“Hello, world!”[0] = 'A';
是不容许的。char str[10] = "Hello";
至关于char str[10] = { 'H', 'e', 'l', 'l', 'o', '\0' }
。printf("string: %s\n", str);
表示printf从数组str的开头一直打印到'\0'为止('\0'自己不打印)。若是没有'\0'会出现越界。int a[][2] = { { 1, 2 }, { 3, 4 }, { 5 } }; /* 第一维能够不指定,而是由编译器自动计算 */ char days[8][10] = { "Monday", "Tuesday" }
int man, ret; ret = scanf("%d", &man); if (ret != 1) { printf("Invalid input!\n"); } /* 等待用户输入一个整数并回车,这个整数会被 scanf 函数保存在 man 这个整型变量里。若是用户输入合法(输入的确实是整数而不是字符串),则 scanf 函数返回1,表示成功读入一个数据。 %d、%f、%c分别表示读入一个整数、浮点数或者字符,第二个参数须要加&; %s表示字符串,第二个参数应该是数组名,不须要加& */
indent -kr -i8 main.c函数
在编译时要加上-g选项,生成的目标文件才能用gdb进行调试:学习
gcc -g main.c -o main gdb main
watchpoints 查看当前设置了哪些观察点指针
(gdb) watch input[5] Hardware watchpoint 2: input[5] (gdb) i watchpoints Num Type Disp Enb Address What 2 hw watchpoint keep y input[5] Hardware watchpoint 2: input[5] Old value = 1 '\001' New value = 2 '\002' 0x0804840c in main () at main.c:11 11 for (i = 0; input[i] != '\0'; i++)
x 从某个位置开始打印存储器的一段内容,所有当成字节来看,而不区分哪些字节属于哪些变量调试
(gdb) x/7b input