随笔分类 - c语言
C语言专题
摘要:感谢广大博友的支持,本人决定把博客搬家到阿里云服务器上欢迎访问www.jqplex.com 定位于为整理面试经验,提高XDJM的面试技巧。将争取于年底提高APP的面试技巧。
阅读全文
摘要:假设我们有一个队列 我们需要快速的找到里面存储的最大值 该怎么做?【提示】:你能做到多快,队列不能排序哦这个题最快能做到 O(1)当然 需要采用空间换时间的方法 那么如何换呢?现在 我们用在之前的用2个栈实现的队列中 再增加两个栈 新增加的两个栈分别的栈顶分别用来表示 原有的两个数据栈中的元素的最大值 现在我们定义 sd1 为队列的进入栈 sd2 为队列的弹出栈 sdm1 为sd1的最大值栈 sdm2 为sd2的最大值栈每次进栈的时候 我们再把数据压入sd1前 先比较sdm1的栈顶元素 如果待压入的数据大, 那么我们就把这个数据压入sdm1 如果sdm1的栈顶数据大 那么我们将这个栈顶数据再次
阅读全文
摘要:如题:#define dPS struct s *typedef struct s * tPS;dPS p1,p2;tPS p3,p4;这并不是一个难搞的问题。只是想提醒大家define和typedef不同一个是由于编译器完成的简单文本替换一个是由正宗编译器完成的重命名操作
阅读全文
摘要:如题:int main(){ const int SIZE = 10; char a[SIZE] = {1000, -1000, 256}; printf("%d\n", strlen(a)); return 0;}此题第一个是编译错误,const修饰的变量是只读变量,而不是我们翻译的常量也就是说SIZE还是变量,只是编译器在编译时从语法的层面不要它作为左值,但是这改变不了它变量的本质大家想想数组定义时一定不能用变量做下标吧把SIZE定义成宏可以改掉这个编译错误剩下的就是输出了大家的焦点在,数组中么有一个是字符我想说的是,ascii码确实只有0--127, 但是不代...
阅读全文
摘要:如题:int square(volatile int *ptr){ return *ptr * *ptr;}这题加上了volatile 恰恰不对 就是因为都从内存读值 而两次读的值有可能不同 导致得不到争取的平方值可以修改如下:int square(int *ptr){ int t=*ptr; return t * t;}那现在有个问题了 什么时候该用volatile修饰变量呢?volatile变量可能用于如下几种情况:(1) 并行设备的硬件寄存器(如:状态寄存器,例中的代码属于此类);(2) 一个中断服务子程序中会访问到的非自动变量(也就是全局变量);(3) 多线程应用中被...
阅读全文
摘要:如题:int main(){ int a,b,c; a = inWord(0x100); /*读取I/O空间0x100端口的内容存入a变量*/ b = a; a = inWord (0x100); /*再次读取I/O空间0x100端口的内容存入a变量*/ c = a; return 0;}但是不能说一定会出错 只是可能出错为什么说只是可能呢 这个要看编译器了 不同的编译器优化方式不同为了我们代码的可移植行 应该给a加上 volatile关键字否则int a,b,c;a = inWord(0x100); b = a;a = inWord (0x100);...
阅读全文
摘要:1 #include <stdio.h> 2 3 void permutation(char s[], int b, int e) 4 { 5 if( (0 <= b) && (b <= e) ) 6 { 7 if( b == e ) 8 { 9 printf("%s\n", s);10 }11 else12 {13 int i = 0;14 15 for(i=b; i...
阅读全文
摘要:void UpperCase( char str[] ) // 将 str 中的小写字母转换成大写字母 { int i; for(i=0; i<sizeof(str)/sizeof(str[0]); i++ ) { if( "a"<=str[i] && str[i]<="z" ) { str[i] -= ("a" - "A" ); } }} 分析结果:这个程序有以下几个大的问题1.函数参数中的数组一定会退化为指针,所以sizeof(str)/sizeof(str[0])的值只有4,
阅读全文
摘要:1 #include<stdio.h> 2 3 int main(int argc, char *argv[]) 4 { 5 char p1[] = "abcd"; 6 char* p2 = "abcd"; 7 8 p1[0] = 'a'; 9 p2[0] = 'a';10 11 return 0;12 } 为什么程序崩溃了?分析结果p1是一个数组,这个数组使用字符串"abcd"初始化,所以p1这个数组的大小为5,存储在栈上p2是一个指针,指向一个只读存储区中的字符串"abcd&q
阅读全文
浙公网安备 33010602011771号