标签:ast 挖掘 运算符 main函数 输出 ack 存储 print amp
在函数调用时,可以只传递一个指针,而不用传递整组数据;指针可以让两段代码同步处理用一条数据,避免了副本和共享数据。
每当我们声明一个变量,计算机都会在存储器中某个地方为它创建空间。如果在函数(例如main()函数)中声明变量,计算机会把它保存在一个叫栈(Stack)的存储器区段中;如果你在函数以外的地方声明变量,计算机则会把它保存在存储器的全局量段(Globals)。在函数中声明的变量通常保存在栈中。在函数外声明的变量保存在全局量区。
#include <stdio.h>
void go_south_east(int lat, int lon)
{
lat = lat - 1;
lon = lon + 1;
}
int main()
{
int latitude = 32;
int longitude = -64;
go_south_east(latitude, longitude);
printf("停!当前位置: [%i, %i]\n", latitude, longitude);
return 0;
}
//试着运行这个程序,是不是跟你想的不一样,这里就体现出指针的作用
//运行结果是:停!当前位置:[32,-64]
mian()函数中定义的longitude是局部变量,当main函数里调用go_south_east函数时,将longtitude的值复制给了lon,这是个赋值的过程,最后输出的还是longtitude,值没变,当go_south_east()函数修改了lon的值时,函数只是修改了本地的副本,也就是说程序返回main()函数时,变量longitude中保存的还是它原来的值32。
‘‘‘
void go_south_east(int *lat, int *lon)//定义参数为指针变量
{
*lat = *lat - 1;//对指针变量进行操作
*lon = *lon + 1;
}
int main()
{
int latitude = 32;
int longitude = -64;
go_south_east(&latitude, &longitude);//&表示取该变量的地址
printf("停!当前位置: [%i, %i]\n", latitude, longitude);
return 0;
}
//这样运行结果就对了
‘‘‘
1、计算机会为变量在存储器中分配空间。 、
2、局部变量位于栈中。
3、全局变量位于全局量段。
4、指针只是一个保存存储器地址的变量。
5、&运算符可以找到变量的地址。
6、运算符可以读取存储器地址中的内容。
7、运算符还可以设置存储器地址中的内容
标签:ast 挖掘 运算符 main函数 输出 ack 存储 print amp
原文地址:https://www.cnblogs.com/sean-zhou0917/p/14127390.html