03 2013 档案
摘要:1.从现象上看:指针在运行时可以改变其所指向的值,而引用一旦和某个对象绑定后就不再改变2.从内存分配上看:程序为指针变量分配内存区域,而引用不分配内存区域3.从编译上看:程序在编译时分别将指针和引用添加到符号表上,符号表上记录的是变量名及变量所对应地址。指针变量在符号表上对应的地址值为指针变量的地址值,而引用在符号表上对应的地址值为引用对象的地址值。符号表生成后就不会再改,因此指针可以改变指向的对象(指针变量中的值可以改),而引用对象不能改。转载http://www.cnblogs.com/songyujin/archive/2006/03/14/350185.html
阅读全文
摘要:#include typedef union { long i;int k[5];char c;} Date;struct data { char c;Date cow;double dog;};int main(int argc, char **argv){printf("%d\n", sizeof(struct data));return 0;}已知32位计算机,gcc编译后运行 , 结果输出什么?答案是32文章最后本人做了一幅图,一看就明白了,这个问题网上讲的不少,但是都没有把问题说透。 一、概念 对齐跟数据在内存中的位置有关。如果一个变量的内存地址正好位于它长度的整
阅读全文
摘要:static 意为静态的意思。函数前不加任何关键字默认是对外可见的, 意为当有多个源文件时, 其他文件能够访问这个函数, 当声明为static时, 则可以对外隐藏, 即使多个文件有相同的名字也无妨。函数内部声明的static变量, 意为静态变量, 与auto变量不同的是, 它存储在静态区, 而不是在堆栈中, 若没有初始化, 则有默认值, 且只初始化一次, 这个变量作用域不变, 但生存期在程序运行时一直有效。即作用域不变, 生存期变长。static char *str = malloc(sizeof(char) * 10);这个语句不能够编译, 因为静态变量只能存在静态区中, 但malloc是在
阅读全文
摘要:switch中只能是整型常量, 在c中包括了short int short char, 不能加指针、浮点、java 中当然包括byte, 不能用布尔、对象等。但在java7后可以加字符串常量了。注意enum枚举类型其实也是整型常量。
阅读全文
浙公网安备 33010602011771号