随笔分类 - c
摘要:getopt被用来解析命令行选项参数。#include extern char *optarg; //选项的参数指针extern int optind, //下一次调用getopt的时,从optind存储的位置处重新开始检查选项。 extern int opterr, //当opterr=0...
        阅读全文
                
摘要:getopt(分析命令行参数)相关函数表头文件 #include定义函数 int getopt(int argc,char * const argv[ ],const char * optstring);函数说明getopt()用来分析命令行参数。参数argc和argv是由main()传递的参数个数...
        阅读全文
                
摘要:【程序1】题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?1.程序分析: 兔子的规律为数列1,1,2,3,5,8,13,21....【程序2】题目:判断101-200之间有多少个素数,并输出所有素数。...
        阅读全文
                
摘要:1- 以8位数据为例,无符号数编码的范围 0000 0000b-1111 1111b 0-255 255 = 2^8 -12- 有符号数编码 用8位数据的最高位表示符号位,0表示整, 1表示负 0000 0000 0 0000 0001 1 0000 0010 2 0111 1111 127 1000 0000 ? 1000 0001 -1 1000 0010 -2 1111 1111 -127 可见表示数的范围 -127 -- 1271000 0000 ? 无法表示 考虑用反码 0000 0000 0 1111 1111 ? 0000 0001 1 1...
        阅读全文
                
摘要:一般的来说,函数是可以返回局部变量的。局部变量的作用域只在函数内部,在函数返回后,局部变量的内存已经释放了。因此,如果函数返回的是局部变量的值,不涉及地址,程序不会出错。但是如果返回的是局部变量的地址(指针)的话,程序运行后会出错。因为函数只是把指针复制后返回了,但是指针指向的内容已经被释放了,这样指针指向的内容就是不可预料的内容,调用就会出错。准确的来说,函数不能通过返回指向栈内存的指针(注意这里指的是栈,返回指向堆内存的指针是可以的)。下面以函数返回局部变量的指针举几个典型的例子来说明:1:静态局部变量,存放在常量区这个没有任何问题,因为"helloworld!"是一个
        阅读全文
                
摘要:1 char a1[] = {'A', 'B', 'C'}; 2 char a2[] = "world"; 3 4 5 printf("[%.*s][%.*s]\n", 2, a1, 10, a2); 6 printf("[%.*s][%.*s]\n", sizeof(a1), a1, sizeof(a2), a2); 7 printf("[%-*d]\n", 4, 'A'); //产生"65 " 8 printf("[%
        阅读全文
                
摘要:在将各种类型的数据构造成字符串时,sprintf 的强大功能很少会让你失望。由于sprintf 跟printf 在用法上几乎一样,只是打印的目的地不同而已,前者打印到字符串中,后者则直接在命令行上输出。这也导致sprintf 比printf 有用得多。sprintf 是个变参函数,定义如下:int sprintf( char *buffer, const char *format [, argument] ... );除了前两个参数类型固定外,后面可以接任意多个参数。而它的精华,显然就在第二个参数:格式化字符串上。printf 和sprintf 都使用格式化字符串来指定串的格式,在格式串内部使
        阅读全文
                
摘要:%d 有符号10进制整数 %ld 长整型 %hd短整型%md,m指定的是输出字段的宽度,默认左补空格, 如果数据的位数小于m,则左端补以空格,若大于m,则 按实际位数输出,如: printf("%4d,%4d",a,b) 若a=123,d=12345,则输出的结果为: 空格123,12345-%md指定的是输出字段的宽度,右补空格,如果数据的位数小于m,则右端补以空格,若大于m,则 按实际位数输出,另外, 若想在输出值前加一些0, 就应在场宽项前加个0。 例如: %04d 表示在输出一个小于4位的数值时, 将在前面补0使其总宽度 为4位。%hu 无符号短整形 %u无符号整形
        阅读全文
                
摘要:如果以下函数,您在使用的时候,总是输出一个莫名的值,是因为您忘记了引用头文件#include 1- atoiint atoi(const char *nptr);把字符串转换成整型数。ASCII to integer 的缩写。#include void funcAtoi(char *str){ float n; n = atoi(str); printf("str = %s, n = %f\n", str, n);}int main(){ char *str1 = "1234.567"; char *str2 = "你好"; func
        阅读全文
                
摘要:我们用gcc编译程序时,可能会用到“-I”(大写i),“-L”(大写l),“-l”(小写l)等参数,下面做个记录:例:gcc -o hello hello.c -I /home/hello/include -L /home/hello/lib -lworld上面这句表示在编译hello.c时:-I ...
        阅读全文
                
 
                    
                     
                    
                 
                    
                
 
         浙公网安备 33010602011771号
浙公网安备 33010602011771号