您的位置:

c语言如何用指针引用字符串数组,c语言用指针输入数组

本文目录一览:

c语言指针与字符数组?

这个时候s指向字符串的第一个字符的地址,所以屏幕上输出的是d。

s+1后,p指针的地址直接跳到了字符串的最后'\0',这个时候屏幕上输出是'\0'。

注意这个位置的标志。(p-2)是常量,不是变量。因为字符串在前面定义的常量。屏幕上的输出h。并且在d与h之间有一个空白,因为前面输出一个字符'\0'。

c语言指针变量引用数组

"i love china!"

"i am a student!"

这两个都是常量字符串,存储在 静态存储区 ,不容修改。

c语言里面怎么用指针表示二维字符数组

二维数组就是数组的数组,二维数组即数组的元素是一维数组的数组。那么我们要用指针指向二维数组,就是要定义一个指向数组的指针了。例如:

char str[3][10]; //定义了一个char型的二维数组

char (*pstr)[10]; //定义了一个指向char型的数组指针

pstr=str;  //指针指向二维数组str

下面用pstr这个指针对二维数组进行赋值操作

int i;

for(i=0;i3;i++)

    scanf("%s",*(p+i));  //*(p+i)等价于str[i]

C语言中如果将一个指针所指向的字符串赋给数组?

数组声明的时候就要指定大小的

可以用memcpy,对于字符串,也可以用strcpy或strncpy(需要包含string.h)

比如:

char

*p="abc";

char

a[10];

memcpy(a,p,sizeof(a));

或者

strcpy(a,p);

或者

strncpy(a,p,sizeof(a));/*

比上面的strcpy安全

*/

PS:关于sizeof,取数组的时候是数组的大小,指针的话,32位机器,会是4,所以字符串指针不用sizeof取长度,用strlen();

c语言中要用什么引用字符串数组里的字符串?

找到这个数组的地址你就可以操作他了

在你定义的时候 数组名就是这个数组的首地址 你可以直接使用数组名来操作这个数组

char str[]="hgff";

puts(str);//用数组名输出数组 注意 必须是字符串

也可以定义一个指针指向这个数组的地址 然后通过指针操作数组

char *p;

p=str;//指针p指向数组str

gets(p);//输入字符串存储在str数组里面

c语言中如何借用指针输出字符串?

使用指针输出字符串有以下几种方式:

1、使用printf 函数进行输出,其使用的格式转换符为%s,如

char *str = "test";//指针指向一个字符串

printf ("%s\n", str);//输出str指向的字符串

2、使用puts函数进行输出,如

char *str = "test";

puts(str);//输出str指向的字符串,会自动多输出一个换行

3、使用自定义函数进行输出,如

void myPuts(char *str)//自定义输出函数

{

if (!str)return ;

while (*str != '\0'){

putchar(*str);

str++;

}

char *str = "test";

myPuts(str);

扩展资料:

C++指针与字符串

1、C语言里没有字符串数据类型,要想获得字符串的表示形式利用字符数组

#includeiostream

using namespace std;

#includestdlib.h

void main()

{

char ar[]={'a','b','c','d'};

coutar;   //字符串后无结束符\0,会有多余打印

coutendl;

char br[]={'a','b','c','d','\0'};

coutbr;

coutendl;

char cr[5]="abcd";   //字符串结尾默认隐藏了\0

coutcr;

system("PAUSE");

}

2、C语言里没有字符串数据类型,要想获得字符串的表示形式利用字符指针

#includeiostream

using namespace std;

#includestdlib.h

void main()

{

char *p="hello world";

coutp; 

//整形的指针,打印指针时只能打印其内部地址

//字符指针,打印指针时也是地址,但是这个被看作字符指针后,会打印该指针指向地址内存放的字符串,打印直到遇到\0为止

system("PAUSE");

}

3、静态常量区的字符串存储及指针访问

#includeiostream

using namespace std;

#includestdlib.h

#includestring.h

void main()

{

char *p="hello world";   //hello world存放在内存的静态常量区

//指针变量p存储的是该静态常量区的首个字符地址

//不能通过指针修改静态常量区的字符,但是可以通过指针访问

int length=strlen(p); 

//strlen计算的是字符串p的有效长度,不算\0

for(int i=0;ilength;++i)

{

coutp[i];

}

system("PAUSE");

}