c基础(1)

来源:互联网 发布:末日人工智能怎么打 编辑:程序博客网 时间:2024/05/24 06:00

一,
  1 用int声明空间和用malloc声明  有什么区别?
  答:int申请的内存空间在栈中分配,而malloc申请的内存空间在堆中分配。
 2 数组和链表有什么区别
  答:数组和链表数据的组织在内存中分布不同,数组在内存中是连续的,而链表是靠指针索
      引的。数组便于索引数据操作,而链表便于插入和删除操作。
 3 一般都什么时候用到栈,举个例子
  答:在分配局部变量、函数调用需要保存数据的场所均要用到栈。
 4 怎样可以优化代码?
  答:从程序的执行效率和占用的存储空间2方面考虑来优化。
 5 怎样可以减小最后生成的 可执行文件的大小?
  答:把程序中的调试信息删除,其次删除程序中生成的中间文件。
 6 一个循环次数多的  一个次数少的   问怎样嵌套能够让其执行效率高些,是次数多的在外面
 还是次数少的在外面?
   C++/C 循环语句中,for 语句使用频率最高,while 语句其次,do 语句很少用。本
  节重点论述循环体的效率。提高循环体效率的基本办法是降低循环体的复杂性。
  建议4-4-1】在多重循环中,如果有可能,应当将最长的循环放在最内层,最短的
 循环放在最外层,以减少CPU 跨切循环层的次数。例如示例4-4(b)的效率比示例
 4-4(a)的高。
 for (row=0; row<100; row++)
 {
 for ( col=0; col<5; col++ )
 {
 sum = sum + a[row][col];
 }
 }
 for (col=0; col<5; col++ )
 {
 for (row=0; row<100; row++)
 {
sum = sum + a[row][col];
}
}
示例4-4(a) 低效率:长循环在最外层 示例4-4(b) 高效率:长循环在最内层
二,malloc,relloc,calloc的区别
   申请动态数组
   用动态申请的方法就可以了
简单写一些
int len;
int *p;

scanf( "%d", &len );

p=calloc(p*len);

三,c专家编程 和 C陷阱与缺陷
四,如何在vc里查找sprintf的原马
五,提高英语
六s1,&s1,&s1[0],s3都代表数组s1的起始地址。
但得注意sizeof(s1) =10; sizeof(&s1) = sizeof(s3) =4;