于C语言中使用指针作为函数参数的问题
c语言改变函数参数的值

c语言改变函数参数的值C语言中,可以通过传递指针作为参数来改变函数参数的值。
这种技术称为"通过指针传递参数"。
指针是一个变量,它保存了一个地址,该地址是另一个变量在内存中的位置。
通过指针,我们可以访问并修改存储在该地址处的值。
要更好地理解指针和如何通过指针传递参数改变值,我们来看一个简单的例子。
假设我们定义了一个函数`changeValue`,它接受一个指向整数的指针,并将指针所指向的值改为10。
下面是函数的定义和调用示例:```c#include <stdio.h>void changeValue(int *ptr)*ptr = 10;int maiint num = 5;printf("Before change: %d\n", num);changeValue(&num);printf("After change: %d\n", num);return 0;```在上面的示例中,我们首先在`main`函数中定义了一个名为`num`的整数变量,并将其初始化为5、然后,我们调用`changeValue`函数,将`num`的地址作为参数传递给函数。
在函数内部,我们使用指针解引用操作符`*`来访问指针所指向的值,并将其改为10。
输出结果为:```Before change: 5After change: 10```可以看到,在调用`changeValue`函数后,`num`的值已经被修改为10。
在C语言中,通过指针传递参数可以对任何类型的变量进行操作,包括基本的整数、浮点数、字符等,也包括复杂的结构体和数组。
只需将相应的类型指针作为函数参数传递,并在函数内部使用解引用操作符`*`来访问和修改值。
此外,C语言还支持通过返回值来改变函数参数的值。
这种方法适用于只有一个返回值的情况。
下面是一个示例,演示了如何使用返回值改变函数参数的值:```c#include <stdio.h>int multiplyByTwo(int num)return num * 2;int maiint num = 5;printf("Before multiply: %d\n", num);num = multiplyByTwo(num);printf("After multiply: %d\n", num);return 0;```在上面的示例中,我们定义了一个名为`multiplyByTwo`的函数,它接受一个整数参数`num`,并返回`num`乘以2的结果。
指针作为函数参数

指针作为函数参数指针作为函数参数是一种非常常见且重要的编程技巧,特别是在C语言中。
指针作为函数参数可以实现许多复杂的操作和功能,同时也可以提高程序的效率。
本文将详细介绍指针作为函数参数的特点、用法以及相关的注意事项。
在C语言中,函数参数的传递方式有两种:值传递和引用传递。
值传递是指将参数的值复制一份到函数中,函数内部对参数的操作不会影响原始值;引用传递是指将参数的内存地址传递给函数,函数内部对参数的操作会直接修改原始值。
1.值传递的局限性当我们在函数中需要修改一些变量的值时,如果使用值传递,实际上只是修改了参数的副本,对原始变量没有影响。
这时候,我们可以使用指针作为函数参数,将变量的地址传递给函数,从而实现对原始变量的修改。
例如,我们希望编写一个函数来交换两个整数的值。
如果使用值传递,只能在函数内部交换副本的值,对原始变量没有影响。
而使用指针作为参数,可以直接修改原始变量的值。
```cvoid swap(int *a, int *b)int temp = *a;*a=*b;*b = temp;```2.函数返回多个值有时候,一个函数需要返回多个值,但C语言中的函数只能返回一个值。
这时候,可以使用指针作为参数,将多个返回值存储在指针指向的内存位置中。
例如,我们希望编写一个函数,计算一个数组中的最大值和最小值。
如果使用值传递,函数只能返回一个值。
而使用指针作为参数,可以将最大值和最小值存储在指针指向的内存位置中。
```cvoid find_max_min(int *arr, int length, int *max, int *min) *max = *min = arr[0];for(int i = 1; i < length; i++)if(arr[i] > *max)*max = arr[i];if(arr[i] < *min)*min = arr[i];}```3.动态内存分配例如,我们希望编写一个函数,动态分配一个指定大小的整型数组,并返回指向该数组的指针。
C语言中指针变量作为函数参数详解

C语言中指针变量作为函数参数详解在C语言中,指针变量作为函数参数是一种非常常见的用法。
通过指针变量作为参数,可以实现对函数外部变量的改变和共享,以及提高程序的运行效率。
一、指针变量作为函数参数的概念在C语言中,函数参数可以是各种类型的数据,包括基本类型(如int、float等)、数组和结构体等等。
而指针变量作为函数参数,是指在函数声明和调用过程中,使用指针类型的参数,将指针所指向的数据传递给函数,从而实现对这些数据的操作和使用。
二、指针变量作为函数参数的作用1.通过函数参数传递指针变量,可以实现对函数外部变量的改变。
在C语言中,函数参数传递是按值传递的,即传递的是变量的副本,而非变量本身。
但是,如果传递的是指针变量,函数可以通过该指针访问和修改变量的值,从而改变函数外部变量的值。
2.使用指针变量作为函数参数,可以实现对函数外部变量的共享。
如果需要在函数中对一些变量进行频繁的读写操作,通过传递指针变量,可以避免对变量的频繁拷贝,提高程序的运行效率。
3. 指针变量作为函数参数,可以实现对动态内存的管理。
在程序中,通过动态内存分配函数(如malloc、calloc等),可以申请一块连续的内存空间,可以通过指针变量将这块内存传递给其他函数进行操作。
三、指针变量作为函数参数的使用方法1.对于基本类型的指针变量,可以使用以下方式进行声明和传递:- 在函数声明中,将形参声明为指针类型。
例如:`void myFunc(int *ptr);`- 在函数定义和调用过程中,使用实参的地址作为参数。
例如:`int val = 10; myFunc(&val);`- 在函数内部,通过指针变量访问和修改实参的值。
例如:`*ptr = 20;`2.对于数组类型的指针变量,可以使用以下方式进行声明和传递:- 在函数声明中,将形参声明为数组指针类型。
例如:`voidmyFunc(int arr[]);`- 在函数定义和调用过程中,使用数组的名称作为参数。
C语言中指针变量作为函数参数详解

C语言中指针变量作为函数参数详解C语言中指针变量作为函数参数详解在C语言中,函数的参数不仅可以是整数、小数、字符等具体的数据,还可以是指向它们的指针。
用指针变量作函数参数可以将函数外部的地址传递到函数内部,使得在函数内部可以操作函数外部的数据,并且这些数据不会随着函数的结束而被销毁。
像数组、字符串、动态分配的内存等都是一系列数据的集合,没有办法通过一个参数全部传入函数内部,只能传递它们的指针,在函数内部通过指针来影响这些数据集合。
有的时候,对于整数、小数、字符等基本类型数据的操作也必须要借助指针,一个典型的例子就是交换两个变量的值。
有些初学者可能会使用下面的方法来交换两个变量的值:#includevoid swap(int a, int b){ int temp; //临时变量 temp = a; a = b; b = temp;}int main(){ int a = 66, b = 99; swap(a, b); printf("a = %d, b = %dn", a, b); return 0;}运行结果:a = 66,b = 99从结果可以看出,a、b 的值并没有发生改变,交换失败。
这是因为 swap() 函数内部的 a、b 和 main() 函数内部的 a、b 是不同的变量,占用不同的内存,它们除了名字一样,没有其他任何关系,swap() 交换的是它内部 a、b 的值,不会影响它外部(main() 内部)a、b 的值。
改用指针变量作参数后就很容易解决上面的问题:#includevoid swap(int *p1, int *p2){ int temp; //临时变量temp = *p1; *p1 = *p2; *p2 = temp;}int main(){ int a = 66, b = 99; swap(&a, &b); printf("a = %d, b = %dn", a, b); return 0;} 运行结果:a = 99,b = 66调用 swap() 函数时,将变量 a、b 的地址分别赋值给 p1、p2,这样 *p1、*p2 代表的就是变量 a、b 本身,交换 *p1、*p2 的值也就是交换 a、b 的值。
字符串指针作为函数参数

字符串指针作为函数参数字符串指针作为函数参数,是C语言中非常基础的内容,也是让许多初学者颇感困惑的问题之一。
本文将就字符串指针作为函数参数这个主题,分步骤阐述其原理和使用方法,并提供一些经验技巧,希望对读者有所帮助。
一、什么是字符串指针在C语言中,字符串实际上就是一个字符数组。
当我们使用字符串变量时,其实是在使用一个指向这个字符串字符数组的指针。
例如,下面的代码定义了一个字符串变量str,其实就是一个指向字符数组的指针:char str[] = "hello world";可以写成:char *str = "hello world";这两种写法的效果是相同的,都是定义了一个字符串指针str,该指针指向一个字符数组,数组里的内容是字符串“hello world”。
二、字符串指针作为函数参数的原理我们知道,在函数调用时,形参和实参的值是通过栈来传递的,如果形参的类型是指针,实参将会传递该指针指向的地址。
在C语言中,字符串指针作为函数参数时,由于字符串实际上是一个字符数组,所以该指针指向的是该数组的首地址。
在函数中对该指针进行操作时,实际上是在对该字符数组进行操作。
因此,在函数内部修改字符串指针指向的数组时,会影响到主函数中字符串所对应的数组。
三、如何使用字符串指针作为函数参数下面,我们通过一个示例来演示如何使用字符串指针作为函数参数。
假设我们要定义一个函数,求出字符串中字符的个数。
代码如下:#include <stdio.h>int char_count(char *str) {int count = 0;while(*str++ != '\0') {count++;}return count;}int main() {char str[] = "hello world";int count = char_count(str);printf("The length of \"%s\" is %d", str, count);return 0;}上述代码中,我们定义了一个名为char_count的函数,该函数的形参是一个char类型的指针str,实现了对字符串长度的计算。
c 指针练习题

c 指针练习题C指针练习题C语言中的指针是一种强大而又复杂的概念。
它允许我们直接访问内存中的数据,并对其进行操作。
然而,由于指针的灵活性和复杂性,很多初学者在使用指针时会遇到困惑和错误。
为了帮助大家更好地理解和应用指针,下面将给出一些C指针的练习题。
1. 交换两个变量的值这是一个经典的C指针练习题。
请编写一个函数,接受两个整数指针作为参数,并交换这两个指针所指向的变量的值。
例如,如果输入为a=3,b=5,调用函数后,a=5,b=3。
2. 求字符串的长度请编写一个函数,接受一个字符串指针作为参数,并返回该字符串的长度。
注意,字符串的长度是指字符串中字符的个数,不包括字符串结尾的空字符'\0'。
3. 查找数组中的最大值请编写一个函数,接受一个整型数组指针和数组的长度作为参数,并返回数组中的最大值。
提示:可以使用指针来遍历数组,并使用一个变量来保存当前的最大值。
4. 字符串拷贝请编写一个函数,接受两个字符指针作为参数,并将第一个字符串拷贝到第二个字符串中。
注意,第二个字符串必须具有足够的空间来存储第一个字符串的内容。
5. 动态分配内存请编写一个函数,接受一个整数作为参数,并动态分配一个大小为该整数的整型数组。
然后,将数组的每个元素初始化为其下标的平方,并返回指向该数组的指针。
注意,使用完数组后,必须释放动态分配的内存。
6. 字符串反转请编写一个函数,接受一个字符串指针作为参数,并将该字符串反转。
例如,如果输入为"hello",则函数应该将其改为"olleh"。
7. 指针数组排序请编写一个函数,接受一个字符串指针数组和数组的长度作为参数,并按照字母顺序对字符串进行排序。
提示:可以使用字符串比较函数strcmp来比较两个字符串的大小,并使用指针来交换字符串的位置。
8. 指向函数的指针请编写一个函数,接受一个整数和一个指向函数的指针作为参数,并使用该函数对整数进行处理。
c语言函数指针调用
c语言函数指针调用C语言中函数指针是一种非常有用的编程工具,它让我们可以将函数作为参数进行传递,灵活地实现各种算法和逻辑。
在本文中,我们将围绕“c语言函数指针调用”这个主题,逐步讲解如何使用函数指针。
1. 定义函数指针类型在C语言中,我们需要先定义函数指针类型,才能使用函数指针。
函数指针类型的定义方法与函数定义非常类似,只需要将函数名替换为一个变量名即可。
例如,下面的代码定义了一个函数指针类型int (*fun)(int, int),表示该指针指向一个返回值为int,接受两个int 类型参数的函数:```cint (*fun)(int, int);```2. 指针赋值定义好函数指针类型之后,我们可以将它与一个具体的函数进行绑定,这个过程称为指针赋值。
指针赋值的方法非常简单,直接将函数名赋给函数指针即可。
例如,下面的代码将函数add绑定到了指针fun中:```cint add(int a, int b) {return a + b;}// 将函数add绑定到函数指针fun中fun = add;```3. 调用函数指针指针赋值完成之后,我们就可以使用该函数指针来调用函数了。
调用函数指针的方法与调用函数非常类似,只需要使用函数指针的名称即可。
例如,下面的代码使用函数指针fun调用了函数add,并打印了结果:```cint result = fun(1, 2);printf("result = %d\n", result);```需要注意的是,在调用函数指针时,我们使用的是指针的名称而不是函数名。
这是因为函数指针本质上是一个变量,存储了函数的地址,因此我们需要通过指针来访问函数。
4. 函数指针作为参数函数指针还有一个非常重要的用途,就是作为函数的参数进行传递。
通过将函数指针作为参数,我们可以实现不同的函数之间的高度组合和灵活调用。
例如,下面的代码定义了一个函数calc,接受三个参数:两个int类型的数和一个函数指针,用来对这两个数进行计算:```cint calc(int a, int b, int (*fun)(int, int)) {return fun(a, b);}```在调用calc函数时,我们可以将任意的函数指针作为第三个参数进行传递,从而实现不同的计算。
指针变量作为函数参数
指针变量作为函数参数在C语言中,指针是一种非常重要的数据类型。
它可以存储内存地址,通过地址来访问或修改相应的数据。
指针变量作为函数参数,可以实现对函数外部变量的访问和修改。
这种机制使得函数能够在进行特定操作时对函数外部的变量进行操作。
首先,指针变量作为函数参数可以实现通过引用传递的效果。
在C语言中,函数的参数传递是按值传递的。
这意味着函数会创建参数的副本,而不是直接操作原始变量。
但是,当我们将变量的地址作为参数传递给函数时,函数可以通过指针来访问和修改原始变量的值,从而达到与引用传递类似的效果。
其次,通过指针变量作为函数参数,我们可以实现对函数外部的数组进行修改。
在C语言中,数组传递给函数时,实际上是传递了数组的首地址。
通过传递指针作为参数,函数可以直接通过指针访问和修改数组,而不需要拷贝整个数组,从而提高了程序的效率。
此外,指针变量作为函数参数还可以实现动态内存管理。
在C语言中,通过调用malloc函数可以在堆上分配内存,并返回一个指向该内存的指针。
如果我们将该指针作为参数传递给函数,那么函数就可以在内存中创建、修改和释放数据。
这种方式在处理大量数据、动态结构或需要跨函数进行内存分配和释放时非常有用。
除此之外,指针变量作为函数参数还可以实现递归操作。
递归是一种函数调用自身的技术,在一些情况下非常有用。
通过将指针变量作为参数传递给递归函数,函数可以在每次调用时传递不同的指针,从而实现对不同数据的操作。
然而,指针变量作为函数参数也存在一些潜在的问题和注意事项。
首先,需要确保在函数中正确使用和处理指针变量,以避免悬挂指针或内存泄漏等问题。
其次,由于指针变量可以修改函数外部的变量,可能会导致意外的副作用和不可预测的结果。
因此,在使用指针变量作为函数参数时,需要谨慎考虑可能出现的风险。
总结来说,指针变量作为函数参数是C语言中非常有用的特性。
它可以实现引用传递的效果,对函数外部变量进行访问和修改,实现对数组和动态内存的操作,以及支持递归等功能。
c语言结构体指针作为函数参数
c语言结构体指针作为函数参数一、概述在C语言中,结构体是一种非常有用的数据类型。
结构体可以包含多个不同类型的变量,这些变量可以按照自己的需求进行组合。
而结构体指针则是指向结构体的指针变量,它可以更加方便地操作结构体中的成员变量。
在函数中使用结构体指针作为参数,可以使得函数能够直接修改结构体中的成员变量,从而实现更加灵活和高效的操作。
二、定义结构体在使用结构体指针作为函数参数之前,首先需要定义一个包含多个成员变量的结构体。
例如:```struct Student {char name[20];int age;float score;};```这个结构体包含了三个成员变量:姓名、年龄和分数。
三、传递结构体指针作为参数在函数中使用结构体指针作为参数时,需要注意以下几点:1. 函数声明时需要将参数声明为一个指向该结构体类型的指针。
例如:```void printStudent(struct Student *s);```这个函数接受一个指向Student类型的指针作为参数。
2. 在调用函数时需要传递一个该类型的指针作为实参。
例如:```struct Student stu = {"Tom", 18, 90.5};printStudent(&stu);```这里将stu的地址传递给了printStudent函数。
3. 在函数内部可以通过指针访问结构体中的成员变量。
例如:```void printStudent(struct Student *s) {printf("Name: %s\n", s->name);printf("Age: %d\n", s->age);printf("Score: %.2f\n", s->score);}```这个函数使用指针访问了结构体中的三个成员变量,并将它们打印出来。
c语言指针函数的用法
c语言指针函数的用法一、引言在C语言中,指针函数是一种特殊类型的函数,它接受一个指针作为参数,或者返回一个指针作为结果。
通过使用指针函数,我们可以更灵活地操作内存,实现对数据类型的深入理解和掌握。
本篇文章将详细介绍指针函数的定义、调用以及注意事项。
二、指针函数的定义1. 定义形式:类型 * 函数名(参数列表) { 函数体 }2. 说明:类型是指针所指向的数据类型;* 表示这是一个指针函数,即该函数接收一个指针作为参数或者返回一个指针;函数名是自定义的名称,需要符合C语言命名规范;参数列表表示函数的输入参数,可以有多个;函数体包含了函数的功能实现。
三、指针函数的调用1. 形式:指针变量 = 函数名(参数列表);2. 说明:首先需要声明一个合适的指针变量,然后将该变量传递给指针函数,函数执行完毕后,指针变量的值会发生改变。
【示例代码】假设有一个整数数组arr[],我们要找到其中最大的元素并返回其索引。
可以定义一个指向函数的指针变量fp,并将它传递给一个指针函数max_index来找到最大元素的索引。
代码如下:int *fp;int max_index(int *arr, int n) {int *max = arr; // 假设第一个元素是最大值for (int i = 1; i < n; i++) {if (*(arr + i) > *max) { // 比较当前元素与最大值的大小max = arr + i; // 更新最大值}}return max; // 返回最大值的地址}fp = max_index; // 将max_index函数的地址赋值给fpprintf("最大元素的索引为:%d\n", fp); // 调用fp即可输出最大元素的索引四、注意事项1. 指针函数不能没有返回值,否则会编译错误。
如果需要返回一个指针,则需要确保返回值指向的空间足够大。
2. 传递给指针函数的参数必须是合适的指针类型,否则会编译错误。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
惰可能崩溃。
return;
l
,,主函数
char‘slr=-NULL; im 4ip.i=lO; ip:&i;
Myfunc((char+)&slx,ip);
锵sir的地址作为形参传递给子函数,则在子函数中字 腑指针str_buf指向实参s廿
free(str); ,,虽然在主函数中未对Str分配内存,但是Sir已经指向了 垢自态分配的内存单元,因此在程序退出时需要释放这部 //分内存单元。
獬m I
。
l
图2子函数调用前后各变量在内存中的位置
作为形参的使用比初始化的指针变量作为形参的使用要复杂。 虽然例l和例2显示的内容是相同的,但完成的工作是不相 同的。首先,通过形参传递的对象是不同的,一个指向的特 定位置的内存单元,一个则指向指针变量;其次,在第一段 代码子函数中的语句只完成了对相应内存单元内容的刷新, 而例第二段代码子函数中的语句不仅仅完成了相应内存单元 内容的刷新,还通过修改主函数中指针变量所指向的内存位 置,完成了字符串地址的传递;最后,第一段代码中动态内 存的分配和释放都是在一个函数体内,而第二段代码中动态 内存的分配和释放在不同的函数体内,因此更需要特别注意, 要避免使用动态分配内存后,未及时释放的情况发生。
(下转到30页)
万方数据
一13一
电脑编程技巧与维护
7 结语 在用VB6.0开发的特种设备GIS远程监控系统中,利用
MapX控件显示地图,实现了在地图上添加和显示设备的标 记,随时可调出该单位重要承压类设备的详细信息,便于进 行远程实时监控。
参考文献 【1】刘红军.自动部署和备份sQL Server数据库的实现【J】.
Abstract:The discussion on C language’S pointer to be used as a parameter in functions is conducted.The situation which uninitialized pointers to be passed as parameters is throughly analyzed and related samples are siven. Key words:C Language;Pointer;Function parameter
( sprintf(str_buf,“Data%dkn”,1); 胪是取指针指向的内存单元中的内容
return;
l
,,主函数 char*str=(char+)malloc(30); //9,内存中分配出30个 ,,连续的字符类型存储单元,将存储单元的首地址赋给s仃。 int 4ip,i=lO; ip=&i;删每整型变量i的地址赋给ip Myfunc(str,ip); free(str); 程序运行后会显示:
8.期刊论文 杨莉 C语言指针的研究与运用 -中小企业管理与科技2008(23)
指针是C语言的精髓部分,也是C语言的重要特色.本文从指针的基本概念出发,结合具体实例对指针的类型进行了分析,并对指针在实际应用中常出现 的问题进行了归类总结,希望对初学者理解"指针"这一重要概念有所帮助.
9.期刊论文 李霞 C语言指针的应用 -科技创新导报2009(4)
SOFTWARE DEVELOPMENT AND DESIGN
软件开发与设计
关于C语言中使用指针作为函数参数的问题
徐辉。王安民 (第二炮兵装备研究院第三研究所,北京100085) 摘要:通过实例针对C语言指针作为函数参数的用法进行讨论,尤其对未初始化指针作为函数参数的情况进行 了详细讨论出相关的实例。 关键词:C语言;指针;函数参数
,,sizeof(buO是取得字符指针变量占用的字节数,由于操作 ,,系统不同,不同数据类型的变量占用的字节数也不相同。
str_buf【i】=cp【i】; Ilstr_buf【i】中存放的是指针s廿所包含的内存地址,cp[i】 ,,中存放的是字符串的首地址
//str_buf=buf;
,,此处不可用这条语句,因为这条语句只是将buf包含的字 ,,符串地址赋给了str_buf,str_buf将指向字符串首地址,
相似文献(10条)
1.期刊论文 王恒滨.闫东升 关于C语言指针定义的讨论 -辽宁财专学报2004,6(2)
在教学和实践中发现,C语言指针定义的信息量不足,难于解释指针使用的许多方面.本文大胆地剖析了已有的定义,从中找出问题所在,并试图加以改 进.还结合实例给出了"拟构"概念,较好地说明了相关知识尤其是指针与数组的关系.
3.期刊论文 陈建辉 C语言指针探讨 -莆田高等专科学校学报2001,8(4)
结合实例从五个方面对C语言指针进行分析和探讨:阐述C语言指针的概念和正确使用指针变量,区分指针变量和指针的指向变量的含义和用法;通过判 断变量与运算符*,[]和()的结合顺序来确定变量的数据类型及指向变量或成员变量的类型;指出指针与数组的关系,通过指针来访问教组元素和采用下标 法数组元素的等价关系;作为函数参数的指针变量,可以改变所指向的主调函数变量的值;指针可以实现动态存储分配,用来实现对链表的创建、插入和删 除等操作.
1 引言 正确地理解和使用指针是成功地进行C语言程序设计的
关键。指针不仅提供了函数修改调用变元的方法,还支持动 态分配内存,因此可以改善某些例程的效率。但同时,指针 也是C语言最强也是最危险的特征之一,未初始化的指针 (包含无效值的指针)可以使系统崩溃。因此在很多C语言的 参考书中,都要求初始化的指针作为函数形参,即形参指向 一个特定数据类型的变量。文中针对未初始化的指针作为函 数形参的使用问题进行了探讨。 2 初始化指针作为函数参数
潍坊学院学报,2008,(04).
【2】张锦明,付永恒.基于GPS/GPRS的位置信息服务系统的 设计与实现叨.测绘通报,2007,(11).
【3】吴贞东,陈麟.基于GPRS和GIS的路灯监控系统【J】. 微计算机信息,2007,(28).
作者简介 孙丽红,女(1973-),助教,研究方向:面向对象的软件开发。
(上垮第13页)狮fI擒c一增奠。 脚…_‰一用詹
{
内存馘
一存-艟一一…1。…w
char‘buf=(char+)malloc(30);
char‘cp=(char+)&buf;
锵字符指针变量buf的地址赋给指针cp,这里需要将其强 删转换成字符指针的类型,便于对str_buf逐个字节赋值。
inti;
sprintf(buf,“Data%d\n”,巧); for(i=0;i<sizeof CouO;i*)
作者: 作者单位: 刊名:
英文刊名: 年,卷(期): 引用次数:
徐辉, 王安民 第二炮兵装备研究院第三研究所,北京,100085
电脑编程技巧与维护 COMPUTER PROGRAMMING SKILLS & MAINTENANCE 2009,(18) 0次
参考文献(3条) 1.谭浩强.C语言设计.北京:清华大学出版社,2001. 2.钱能.C++程序设计教程.北京:清华大学出版社,2001. 3.徐金吾,杨德斌,徐科.TURBO C实用大全.北京:机械工业出版社,1996.
指针是C语言的低级语言特性.使用指针程序员可以按地址操作计算机内存,灵活实现一些特定功能;使用指针可以方便地表达复杂的数据结构,使程序 简洁、高效、紧凑,指针是整个C语言课程的重点以及后续课程的重要基础.指针是C语言教学难点,在教学中采取适当的策略和方法完全可以取得较为满意 的效果.
6.期刊论文 刘丽梅 复习C语言应注意的几个方面(之四)--针对CCT C语言指针部分 -承德职业学院学报2005,10(3)
指针是包含了内存地址的变量,这个地址是内存中某一 个特定数据类型变量的位置,即地址。将指针作为函数的形 参,是将指针指向的这个变量的位置传递给函数,供函数内 部模块的调用,而作为实参的指针并没有参与函数的调用。
void iyfunc(char 4str_buf,int掌j) ,,显示一个整型变量的值的子函数
工业出版社,1996.
Myhmc调用后s仃被指向了Mflunc子函数中动态分配的内存 单元,因此能够正常显示出字符串的内容。 4 结语
作者简介 徐辉,男(1982一),助理工程师,研究方向:弹道仿真。
通过对上述实例的比较可以看出:未初始化的指针变量
王安民,高级工程师。
一30一
万方数据
关于C语言中使用指针作为函数参数的问题
指针是C语言的一个重要概念,也是C语言的一个重要特色.但是指针概念比较抽象.使用又相对比较灵活,正确应用指针变成了程序设计的一个难点,本 文就指针的应用从各方面作一介绍.帮助学习者加深理解.
10.期刊论文 李振涛.赵鹏.杨树元.Li Zhen-tao.ZHAO Peng.YANG Shu-yuan C语言多维数组与指针的探讨 -长春师
本文主要针对CCT中的C语言部分,在复习时应该注意的几个方面,以讲、例结合的方式作了详细的论述.
7.期刊论文 王丕景 C语言“指针”教学经验谈 -太原理工大学学报(社会科学版)2001,19(2)
在C语言的教学中,指针概念的教学一直就是C语言的教学重点和难点,指针已成为学习和掌握C语言的一大障碍.从硬件角度、图示方法及举例选题三 个方面介绍了C语言指针教学中的体会.
Data 10
本文收稿日期:2009—7-6
Myfunc函数调用前和调用时的各变量在内存中的分配如 图l所示。
■一舯c调用靛
管=:一
调用耐
艮M昏 位置
从图l中可以看出传递给MyfllIlc子函数的是实参指针sh 和IP的内容,即SⅡ指向的字符串首地址,IP指向的整型变量 低字节的地址。在子函数调用过程中Sir和IP的内容并不会发 生改变,但子函数会改写str指向的字符串单元中的内容。 3未初始化指针作为函数形参