易截截图软件、单文件、免安装、纯绿色、仅160KB
热门标签: c c# c++ asp asp.net linux php jsp java vb Python Ruby mysql sql access Sqlite sqlserver delphi javascript Oracle ajax wap mssql html css flash flex dreamweaver xml
 最新文章 : c

C traps and Puzzles

下面的例子都在Ubuntu8.04 GCC下编译的结果,有些没有给结果
编程一定要自己动手试一试!
1.定义与声明,定义要分配内存,声明只是声明在别处定义了
int a;     //定义
extern int a;  //声明
char str[100]
extern char str[]  //ok
char * str[]
extern char str[] //error
char str[100]
extern char * str //error
数组和指针是两码事!只是在某些情况下为了简化编译都当做指针处理
2.register 不能用取址运算符,因为可能不存放在内存中.
#include <stdio.h>
int main(void)
{
    register int r=10;
    int * ptr=&r;
    printf("%d\n",*ptr);
    return 0;
}
3.sizeof是关键字不是函数也不是宏
(define 不是关键字),sizeof在编译的时候就确定了,由编译器算出
int i=0;
sizeof(i) //4 ok
sizeof(int) //4 ok
sizeof i   //4 ok
sizeof int //error!
int *p=NULL;
sizeof(p)  //ok 4
sizeof(*p)  //ok 4!
int a[100];
sizeof(a)   //100
sizeof(&a)  //4
sizeof(& ......

C面试题(整理,更新中...)

1.用预处理指令#define声明一个常数,表明1年有多少秒(闰年忽略)
#define SECONDS_PER_YEAR  (60*60*24*365)UL
2.写一个“标准”宏 MIN,输入两个参数并返回较小的一个
#define MIN(A,B) ( ( (A)<=(B) )?(A):(B) )
3.预处理标识#error的目的是什么?
停止编译并显示出错信息
4.用C语言编写一个死循环 ?
while(1)
{
}
5. 用变量a给出下面的定义
a) 一个整型数(An integer)----  int a;
b) 一个指向整型数的指针(A pointer to an integer-----int *a;
c) 一个指向指针的的指针,它指向的指针是指向一个整型数(A pointer to a pointer
to an integer)-------int **a;
d) 一个有10个整型数的数组(An array of 10 integers)----int a[10];
e) 一个有10个指针的数组,该指针是指向一个整型数的(An array of 10 pointers to
integers)------------int *a[10];
f) 一个指向有10个整型数数组的指针(A pointer to an array of 10 integers)---int (*a)[10]
g) 一个指向函数的指针,该函数有一个整型参数并返回一个整型数(A pointer to a fu
nction that takes an integer as an argument and returns an integer)------int ......

C盘转换为NTFS格式.

@ ECHO OFF
@ ECHO.
@ ECHO.                          Snlie
@ ECHO ---------------------------------------------------------------
@ ECHO NTFS格式是WinXP推荐使用的格式。转换为NTFS格式能提高硬盘存储的
@ ECHO 效率,并可设置访问权限以保护文件。但NTFS格式的分区在DOS/WIN9X
@ ECHO 下均不能被识别,可能会给初级用户造成不便。如无必要请不要转换。
@ ECHO ---------------------------------------------------------------
@ ECHO.
convert c:/fs:ntfs ......

继续:C面试题(整理,更新中...)

1.设有以下说明和定义:
typedef union {long i; int k[5]; char c;} DATE;
struct data { int cat; DATE cow; double dog;} too;
DATE max;
则语句 printf("%d",sizeof(struct date)+sizeof(max));的执行结果是: ???
答:DATE是一个union, 变量公用空间. 里面最大的变量类型是int[5], 占用20个字节. 所以它的大小是20
data是一个struct, 每个变量分开占用空间. 依次为int4 + DATE20 + double8 = 32.
所以结果是 20 + 32 = 52.
当然...在某些16位编辑器下, int可能是2字节,那么结果是 int2 + DATE10 + double8 = 20
2、队列和栈有什么区别?
队列先进先出,栈后进先出
3、请找出下面代码中的所以错误
说明:以下代码是把一个字符串倒序,如“abcd”倒序后变为“dcba”
1、#include"string.h"
2、main()
3、{
4、 char*src="hello,world";
5、 char* dest=NULL;
6、 int len=strlen(src);
7、 dest=(char*)malloc(len);
8、 char* d=dest;
9、 char* s=src[len];
10、 while(len--!=0)
11、 d++=s--;
12、 printf("%s",dest);
13、 return 0;
14、}
答:
方法1:
int main(){
char* src = "hello,world";
int len = st ......

c/c++内存划分

      一、个经过编译的C/C++的程序占用的内存分成以下几个部分:
      1、栈区(stack):由编译器自动分配和释放 ,存放函数的参数值、局部变量的值等,甚至函数的调用过程都是用栈来完成。其操作方式类似于数据结构中的栈。 
  2、堆区(heap) :一般由程序员手动申请以及释放, 若程序员不释放,程序结束时可能由OS回收 。注意它与数据结构中的堆是两回事,分配方式类似于链表。 
  3、全局区(静态区)(static):全局变量和静态变量的存储是放在一块的,初始化的全局变量和静态变量在一块区域, 未初始化的全局变量和未初始化的静态变量在相邻的另一块区域。程序结束后由系统释放空间。 
  4、文字常量区:常量字符串就是放在这里的。 程序结束后由系统释放空间。 
  5、程序代码区:存放函数体的二进制代码。 
  下面的例子可以完全展示不同的变量所占的内存区域: 
  //main.cpp
  int a = 0; 全局初始化区
  char *p1; 全局未初始化区
  main()
  {
  int b; //栈中
  char s[] = "abc"; //栈中
  char *p2; //栈中
  char ......

c/c++内存划分

      一、个经过编译的C/C++的程序占用的内存分成以下几个部分:
      1、栈区(stack):由编译器自动分配和释放 ,存放函数的参数值、局部变量的值等,甚至函数的调用过程都是用栈来完成。其操作方式类似于数据结构中的栈。 
  2、堆区(heap) :一般由程序员手动申请以及释放, 若程序员不释放,程序结束时可能由OS回收 。注意它与数据结构中的堆是两回事,分配方式类似于链表。 
  3、全局区(静态区)(static):全局变量和静态变量的存储是放在一块的,初始化的全局变量和静态变量在一块区域, 未初始化的全局变量和未初始化的静态变量在相邻的另一块区域。程序结束后由系统释放空间。 
  4、文字常量区:常量字符串就是放在这里的。 程序结束后由系统释放空间。 
  5、程序代码区:存放函数体的二进制代码。 
  下面的例子可以完全展示不同的变量所占的内存区域: 
  //main.cpp
  int a = 0; 全局初始化区
  char *p1; 全局未初始化区
  main()
  {
  int b; //栈中
  char s[] = "abc"; //栈中
  char *p2; //栈中
  char ......

【转】C变量的存储方式

C变量的存储方式-“静态存储”和“动态存储”      变量的存储方式可分为“静态存储”和“动态存储”两种。 静态存储变量通常是在变量定义时就分定存储单元并一直保持不变,直至整个程序结束。全局变量即属于此类存储方式。动态存储变量是在程序执行过程中,使用它时才分配存储单元,使用完毕立即释放。典型的例子是函数的形式参数,在函数定义时并不给形参分配存储单元,只是在函数被调用时,才予以分配,调用函数完毕立即释放。如果一个函数被多次调用,则反复地分配、释放形参变量的存储单元。从以上分析可知,静态存储变量是一直存在的,而动态存储变量则时而存在时而消失。我们又把这种由于变量存储方式不同而产生的特性称变量的生存期。生存期表示了变量存在的时间。生存期和作用域是从时间和空间这两个不同的角度来描述变量的特性,这两者既有联系,又有区别。一个变量究竟属于哪一种存储方式,并不能仅从其作用域来判断,还应有明确的存储类型说明。 在C语言中,对变量的存储类型说明有以下四种: auto       自动变量 register   寄存器变量 extern 外部变量(全局变量) static  & ......
总记录数:2015; 总页数:336; 每页6 条; 首页 上一页 [294] [295] [296] [297] 298 [299] [300] [301] [302] [303]  下一页 尾页
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号