研究问题:
- 字符串指针作函数参数?
要点:
- C语言中没有特定的字符串类型,通常是将字符串放在一个字符数组;而指针和数组的规则同样也适用于字符数组。
- 字符串指针变量本身是一个变量,用于存放字符串的首地址。而字符串本身是存放在以该首地址为首的一块连续的内存空间中并以‘\0’作为串的结束。字符数组是由于若干个数组元素组成的,它可用来存放整个字符串。
截图展示区:
- 1.
#include<stdio.h>
#include<string.h>
void print(const char* s)
{
printf("%s",s);
}
int main()
{
print("asf");
}
运行结果:
- 字符串指针&&字符数组
字符串指针Code:
#include<stdio.h>
#include<malloc.h>
int main()
{
//使用字符指针需要分配内存空间,因为不知道需要多大内存储存
char *p;
p=(char *)malloc(255);
gets(p); //scanf("%s",p)
printf("%s",p);
//char str[255];
// gets(str);
// //数组都需要定长,同理,指针也要分配内存空间!
// printf("%s",str);
return 0;
}
- 字符数组Code:
#include<stdio.h>
int main()
{
char str1[20], str2[20];
scanf("%s",str1); //str1、&str1、&(*str1)都行
printf("%s\n",str1);
scanf("%s",&str2);
printf("%s\n",str2);
return 0;
}
4.字符串指针作函数参数
实参 形参
数组名 数组名
数组名 字符指针变量
字符指针变量 字符指针变量
字符指针变量 数组名