文章标题

来源:互联网 发布:飓云网络wifi登录界面 编辑:程序博客网 时间:2024/06/15 05:58

指针其中应用

C程序设计P259中的一个小实例,但是不亲手做的话还是很多看似能看懂,但是写不出来的东西。

分为几个方面吧,指针引用数值,引用数组,引用字符串和指向函数的指针

#include <stdio.h>#include <string.h>#include <stdlib.h>int main(){    void copy_string(char str1[],char str2[]);    char str1[]="I am a good students!";    char *str2="I am a good teacher!";    char str3[35],*str4;    //copy_string(str2,str4);    copy_string(str1,str3);             system("pause");}void copy_string(char str1[],char str2[]){      printf("%d\n",strlen(str1));    printf("%s\n",str1);    //从这里开始可以替换    int i,*a;    for(i=0;i<strlen(str1);i++){        str2[i]=str1[i];        a=&i;    }/*  这个地方试了试数值指针的使用本来写的是下边的    for(int i=0;i<strlen(str1);i++){        str2[i]=str1[i];    }    str[strlen(str1)]='\0';*/      str2[*a]='\0';    printf("%s\n",str2);}

其中出现过几次错误,本来使用*a时候初始化int *a,然后直接想给 *a赋值成0,写成int *a ; *a=0;可以通过编译。但是这里的 *a是野指针。然后 a的赋值应该是地址的,这里没有给a分配到地址。所以运行后会中断。
写成int *a = 11;也是有问题的。这里我感觉相当于int *a; a=11;给a了一个11的内存地址。这类地址一般应该是不能调用的。

0 0