大家好,今天小编关注到一个比较有意思的话题,就是关于c语言指针与字符串的问题,于是小编就整理了4个相关介绍c语言指针与字符串的解答,让一起看看吧。
c语言指针赋空值怎么实现?
C语言并没有空值这个概念,一般习惯上,指针若是指向地址0便是空值,其他数据若内容是0便是空值。填充一大片内存区域可以使用memset函数,它的填充长度是按字节计。
整形: a = 0;字符型:char a = 0;数组:int a[20];memset( a, 0, sizeof(int)*20 );C字符串只需要把第一个字符设为'\0'即可。
当然也可以全部清成0。char a[20] = "ashdfuih";memset( a, 0, sizeof(char)*20 );例如有一个结构体Some x,可以这样清零:memset( &x, 0, sizeof(Some) );如果是一个结构体的数组Some x[10],可以这样:menset( x, 0, sizeof(Some)*10 );任何一个指针都可以通过直接赋为0变成空指针:Some* p = 0;
为什么指针存储字符串不需要申请内存空间?
指针数组是需要分配内存单元的。 指针数组表示一个指针类型的数组,数组中每个元素都是一个指针,而C语言中指针只占4个字节,所以指针数组所占的内存大小为4*N(N为数组的大小)。 举例如下: int *a[5]
; // 定义一个int类型的指针数组,共5个元素,每个元素都是一个int类型的指针,共占用4*5=20个字节的内存单元,这是在程序编译的时候进行内存分配的。
C语言实现如何在字符串中找到给定的字符子串的位置?
用strstr这个函数包含文件:string.h函数名: strstr 函数原型:extern char *strstr(char *str1, char *str2)
;功能:找出str2字符串在str1字符串中第一次出现的位置(不包括str2的串结束符)。
返回值:返回该位置的指针,如找不到,返回空指针。源代码:#include<stdio.h>#include<string.h>//调用string.h中的strstr函数void main(){ char ch1[255]="abcde"; char ch2[100]="cd"; char* ch;//用于接受返回值 if((ch=strstr(ch1,ch2))==NULL){//说明没有要找的字符串 printf("-1\n"); }else{//说明找到了那个字符串 printf("%d\n",ch-ch1+1)
;//cde的地址减去abcde的地址+1 } }
变量的指针含义是指变量的什么?
变量的指针是指该变量的地址。在C语言中,允许用一个变量来存放指针,这种变量称为指针变量。指针变量的值就是某份数据的地址,这样的一份数据可以是数组、字符串、函数,也可以是另一个指针变量。
在C语言中,允许用一个变量来存放指针,这种变量称为指针变量。指针变量的值就是某份数据的地址,这样的一份数据可以是数组、字符串、函数,也可以是另外的一个普通变量或指针变量。
到此,以上就是小编对于c语言指针与字符串的问题就介绍到这了,希望介绍关于c语言指针与字符串的4点解答对大家有用。