指针面试题
【C语言面试题】【知识点】【注意1】二维数组的初始化int a[ 3 ] [ 2 ] = { {0,1},{2,3},{4,5} }; 内部应该为花括号。
注意与逗号表达式区分!!!!
同时二维数组的在内存中依然是按照顺序排放。
【注意2】指针的初始化1、指针指向一个数组 int* p = arr;
2、指针指向一串字符串 char* ptr = “abcdefg”;
3、用&符号
【注意3】指针的运算指针的运算主要有三种:1、指针加减整数,跳过指针指向类型的个数
2、指针减指针,得到的是两指针之间元素的个数,前提是两个指针指向同一块空间
3、指针的关系运算 >, <, =
【注意4】C语言运算符优先级
【真题】【真题1】1234567891011int main(){ char* c[] = { "ENTER","NEW","POINT","FIRST&q ...
数据在内存中的存储
【数据在内存中的存储】【内存是什么样子的?内存如何分配?】【内存的样子】内存可以想象成一个连续的物理空间。
【内存的分配】【总述】内存分配分为三种:静态、栈区、堆区。
【分别解释】(1)静态存储区:主要存放static静态变量、全局变量、常量。这些数据内存在编译的时候就已经为他们分配好了内存,生命周期是整个程序从运行到结束。
(2)栈区:存放局部变量。在执行函数的时候(包括main这样的函数),函数内的局部变量的存储单元会在栈上创建,函数执行完自动释放,生命周期是从该函数的开始执行到结束。
栈区的使用习惯:先使用高地址,再使用低地址。
eg:
1234567int main(){ int i = 3; int arr[2] = {1,2}; return 0;}//【注】:i和arr数组是局部变量,存放在栈区,而栈区使用习惯是先使用高地址,再使用低地址,而且一般的家庭计算机数据存储方式是小端存储,所以i和arr在内存上应该是这样:
(3)堆区:程序员自己申请一块任意大小的内存—也叫动态内存分配。这块内存会一直存在直到 ...
Markdown语法学习以及利用typora绘图
Typora绘图饼状图(Click the Photo)12345pie title 暗网占比 "色情":452 "毒品":1265 "比特币":569
时序图(Click the Photo)1


