- 5
- 0
- 约4.53千字
- 约 6页
- 2016-08-06 发布于重庆
- 举报
CC深层探索读书笔记
《C/C++深层探索》读书笔记
!--[if !supportLists]--1.!--[endif]--字节顺序:有如下代码:
int i = 0
char *p = ( char * ) i ;
printf ( “ %s / n ”, p ) ;
若为低位优先(Little-endian)则输出“A”,若为高位优先(Big-endian)无任何输出,因为数值为0的字节在C/C++里面表示一个单字节字符串的结束,由于指针指向的第一个字节的值是“0”,所以系统认为这是一个什么都没有的空字符串。
2.外部变量和局部静态变量存放在(静态)数据区,在整个程序运行期间它们的地址不变,从程序开始到结束都是固定的,任何函数都能存取这些数据; 函数的形式参数及局部变量存放于栈中,一般地,栈是往内存低地址方向增长的。函数之间不能访问各自的静态内部变量。
3.主调函数m的局部变量b作为实参调用一个函数f,f函数不能修改主调函数的这个局部变量,此即为值传递,因为m调用f的时候先复制b,从而得到一个b的副本,再把这个副本赋给f的形式参数,f只是把b的值(即b的副本)压栈,f并不知道b的地址,f访问的只是一个b的副本,所以改变不了m中b这个局部变量。
4.声明一个变量仅仅是告诉编译器变量的类型,但不会导致编
原创力文档

文档评论(0)