本文目录一览:
- 1、c语言指针与字符数组?
- 2、c语言指针变量引用数组
- 3、c语言里面怎么用指针表示二维字符数组
- 4、C语言中如果将一个指针所指向的字符串赋给数组?
- 5、c语言中要用什么引用字符串数组里的字符串?
- 6、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");
}