#include <stdio.h> void modifyValue(int *ptr) { *ptr = 100; // 修改指针指向的值 } int main() { int num = 10; printf("Before modification: %d\n", num); modifyValue(&num); // 将局部变量的地址传递给指针 printf("After modification: %d\n", num); return 0; } 在上面的示...
局部变量: 局部变量分为局部自动变量和局部静态变量,无论自动还是静态,返回局部变量都是没有问题的,因为返回值不是地址,虽然在函数调用结束后(栈区)局部变量的内存会被释放回收掉,但函数返回的是变量拷贝副本。 局部指针: 局部指针分为局部静态指针和局部自动指针,可以返回一个局部静态指针的地址,但不应该返回一个局...
指针变量就是专门用来存储 地址 的变量,那么我们就说指针变量指向了另外一个变量,存储着另外一个变量的地址。 指针可以使访问一个变量的方式分为两种。a. 直接访问b. 可以通过指针变量,找到这个指针指向的变量所以通过指针变量可以间接的访问指针变量指向的另外一个变量。 如何声明一个专门用来存储地址的指针变量数据类...
局部变量也分局部自动变量和局部静态变量,由于a返回的是值,因此返回一个局部变量是可以的,无论自动还是静态,因为这时候返回的是这个局部变量的值,但不应该返回指向局部自动变量的指针,因为函数调用结束后该局部自动变量被抛弃,这个指针指向一个不再存在的对象,是无意义的。但可以返回指向局部静态变量的指针,因为静态变...
2.野指针 野指针概念:指针指向的位置不可知(随机的、不正确的、没有明确限制的) 以下介绍几种野指针情况 ①指针未初始化 #include <stdio.h> int main() { int *p;//局部变量指针未初始化,默认为随机值 *p = 20; return 0; } ②指针越界访问 ...
指针变量声明的一般形式为: type *var_name; type 是指针的基类型, var_name 是指针变量的名称。 *星号是用来指定一个变量是指针。 举例: `#include <stdio.h> int main () { int var_runoob = 10; int *p; // 定义指针变量 p = &var_runoob; ...
全局变量声明后未进行初始化,编译器会自动给变量赋值。int 就赋值 0;char 赋值 \0;指针类型,赋值一个 00000000。局部变量声明后未进行初始化,编译器会随机给变量赋值,这个值是未知的,就会产生脏数据。所以一般声明了普通的局部变量,建议是直接对其进行初始化。总结 作用域:用来描述变量所能作用的范围。作用...
指针变量的大小在同一平台是是固定的: 指针大小在32位平台是4个字节,64位平台是8个字节。 2. 指针及指针类型的意义 我们知道指针也有不同的类型: 代码语言:javascript 复制 char*pc=NULL;int*pi=NULL;short*ps=NULL;long*pl=NULL;float*pf=NULL;double*pd=NULL; ...
函数完成只释放局部变量本身占用的空间,如果变量是指针变量,则不会释放指针指向的空间