-
* 取内容符
查看全部 -
函数的参数是形参,a、b为参数名,将a,b传递进函数的时候,传入的是两个数值,在函数里a、b相当于局部变量,无论怎么改变,有效范围只在该函数里面,对于main里面的a和b是没有影响的。即函数在传递数值的时候是默认把变量里的值传进去,故传入的值是实参,而a、b作为一个代号只代表一个变量的名称,而且该变量在函数里面就相当于一个局部变量,无法影响主函数。
查看全部 -
char类型的指针变量里面的值在代码段
用scanf输入数组类型的值时 可以不用加& 因为数组名称本身就是地址
指针类型的字符串不能输入 char *p="hello world" 中的hello world 不不允许被修改的,因为它储存于代码段,而非堆或栈中
只有堆和栈里面可以进行修改数据,代码段不允许修改数据
字符串遇到\0就结束不会打印后面
查看全部 -
指针类型的加减做的是地址的偏移(表示把内存地址进行移动)
p[3]表示 把p往下偏移移动三格(=> p+=3)
数组的本质也是一种指针;任何需要用数组操作的地方都可以用指针来操作;因为指针和数组本质上都是内存地址。
但反过来则不一定,所有指针能操作的数组不一定能够操作。数组名不可以被操作。即“array+=2” 会报错。
p是一个指针变量,是一个可以指向不同地址的量;而array本质上是一种指针常量。
指针常量能操作的一般指针变量也可操作,但指针变量可以把指针指向别的地方而指针常量则不可以,即array一旦声明指向了某个地址则永远指向这个地址而不能被改变。
数组和指针可以有一定的通用性又有一定的差别。
查看全部 -
任何一个指针,变量名称本身:指向变量所在的地址;
在变量名称前加*:通过该地址去找地址里的内容;
查看全部 -
最下面的内存最先分配
最先分配的栈地址反而更大
栈的特点:先进后出
静态变量不在栈里头,相同变量名称的静态变量分别在两个函数里便为两个不同变量,属于每个函数特有的;
全局变量为所有函数公用的。其地址不变。
一个函数被多次调用时,静态变量指向的还是数据段一个固定的地址;即不同函数的count是不同的count,但同一个函数不管调用多少次count,它指向的都是数据段的某个地址。
查看全部 -
每调用一个函数都会分配一个栈内存
先声明的函数地址小,后声明的函数地址大
而在栈中是相反的
查看全部 -
在栈中 一个函数可以被多次调用
每次调用函数都是一个独立的栈
查看全部 -
栈存储的为函数当前的运行状态
查看全部
举报